호스팅 옮기고 에러가 나서 질문 드립니다.
본문
닷홈에서 닷홈으로 디비를 옴겼는데 에러가 나네요.
Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'abc1472'@'localhost' (using password: YES) in /hosting/cebuking1004/html/lib/common.lib.php:1528 Stack trace: #0 /hosting/cebuking1004/html/lib/common.lib.php(1528): mysqli_connect() #1 /hosting/cebuking1004/html/common.php(153): sql_connect() #2 /hosting/cebuking1004/html/_common.php(2): include_once('...') #3 /hosting/cebuking1004/html/index.php(2): include_once('...') #4 {main} thrown in /hosting/cebuking1004/html/lib/common.lib.php on line 1528
디비는 정상적으로 옴겼고 사이트는 통으로 다운받아서 설치했습니다.
디비 설정시 dbconfig 에서 설정변경 했구여.
어떤부분이 틀렸는지 지적좀 해주세요.
감사 드립니다~
답변 6
계정 비밀번호가 틀린거 아닌가요?
DB 접속 정보가 틀린겁니다. DB명, user, password 모두 다시 확인해 보세요.
서버 버전이
- 서버: Localhost via UNIX socket
- 서버 타입: MySQL
- 서버 연결: SSL is not being used
- 서버 버전: 8.0.36 - Source distribution
- 제품 버전: 10
- 사용자: cebuking1004@localhost
- 서버 문자셋: UTF-8 Unicode (utf8mb4)
그래서 변경했어요 하위 버전으로
Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /hosting/cebuking1004/html/lib/common.lib.php on line 1528
Warning: mysqli_connect(): (HY000/2054): The server requested authentication method unknown to the client in /hosting/cebuking1004/html/lib/common.lib.php on line 1528
Connect Error: The server requested authentication method unknown to the client
- 서버: Localhost via UNIX socket
- 서버 타입: MySQL
- 서버 연결: SSL is not being used
- 서버 버전: 5.7.44 - MySQL Community Server (GPL)
- 제품 버전: 10
- 사용자: abc1472@localhost
- 서버 문자셋: UTF-8 Unicode (utf8mb4)
그랬더니 저렇게 나오네요 ㅎㅎ
DB 비밀번호를 (대문소/소문자/숫자/특수문자) 조합해서 어렵게 재생성 후,
해당 패스워드를 /data/dbconfig.php 파일의 아래 자리에 넣어보세요.
define('G5_MYSQL_PASSWORD', '여기에 패스워드 입력');
구 호스팅 상태와 동일한 php 버전으로 맞추세요.
MySQL 사용자 인증 방식과 PHP 및 MySQL 서버 간 호환성 문제로 보입니다.
1. MySQL 8.0 이상에서 기본 인증 방식이 caching_sha2_password로 설정되었을 수 있습니다. 이를 mysql_native_password로 변경하세요.
- MySQL에 접속:
mysql -u root -p
ALTER USER 'abc1472'@'localhost' IDENTIFIED WITH mysql_native_password BY '현재비밀번호';
FLUSH PRIVILEGES;
2. PHP와 MySQL 서버의 버전 차이에 따라 호환성 문제가 발생할 수 있습니다. 이전 호스팅의 PHP 버전을 확인하고, 새 호스팅에서도 동일한 버전을 사용하세요.
- PHP 버전 확인:
php -v
sudo apt-get install php-mysqli
sudo systemctl restart apache2
define('G5_MYSQL_HOST', 'localhost');
define('G5_MYSQL_USER', 'abc1472');
define('G5_MYSQL_PASSWORD', '비밀번호');
define('G5_MYSQL_DB', '데이터베이스명');
[mysqld]
default_authentication_plugin = mysql_native_password
sudo systemctl restart mysql