This error appears in my case in PHP Symfony4 /PDO Doctrine with MySql 8.0.13 Server when I try to connect to Database:
An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
This error appears in my case in PHP Symfony4 /PDO Doctrine with MySql 8.0.13 Server when I try to connect to Database:
An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
You have to use legacy style passwords for MySQL 8 and PHP7+:
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
So, here’s the fix. You can create a user with the “old” authentication mechanisme, which the MySQL database driver for PHP still expects.
CREATE USER 'ohdear_ci'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ohdear_secret';
GRANT ALL PRIVILEGES ON ohdear_ci.* TO 'ohdear_ci'@'localhost';
If you already have an existing user with permissions on databases, you can modify that user instead.
ALTER USER 'ohdear_ci'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ohdear_secret';
After that, your PHP code can once again connect to MySQL 8.
You can set the directive in your mysql configuration :
[mysqld]
default_authentication_plugin=mysql_native_password