An exception occurred in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

Viewed 13966

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

3 Answers

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.

Reference Link

You can set the directive in your mysql configuration :

[mysqld]
default_authentication_plugin=mysql_native_password
Related