PHP 에서 MySQL 8 에 연결하면 다음과 같이 caching_sha2_password는 알수 없는 인증 방식이라는 에러가 나면서 로그인을 할 수 없습니다.

Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
CODE


원인은 MySQL 8 부터는 더 강화된 인증 방식을 도입했는데 PHP 의 MySQL dirver 가 이를 지원하지 않아서이며 2가지 해결 방안이 있습니다.

조치

PHP 7.4 이상 사용

PHP 7.4 이상에 포함된 mysqlnd extension 에는 caching_sha2_password 인증 방식을 지원하므로 PHP 7.4 이상으로 업그레이드하면 해결됩니다.

MySQL 인증 방식 수정

MySQL 설정 파일(/etc/my.cnf)에 예전 인증 방식으로 설정하고 재구동해줍니다. 

[mysqld]
default_authentication_plugin=mysql_native_password
CODE


이미 생성한 계정은 암호를 리셋해줘야 인증 방식이 적용됩니다.

ALTER USER 'user'@'localhost' IDENTIFIED BY 'secert';
SQL


같이 보기


Ref