驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法

时间:2018-10-30 14:48:14

标签: php mysql symfony doctrine

当我尝试连接到数据库时,在使用MySql 8.0.13 Server的PHP Symfony4 / PDO学说中,出现此错误:

  

驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求了客户端未知的身份验证方法

3 个答案:

答案 0 :(得分:3)

您必须为MySQL 8和PHP7 +使用旧式密码:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

答案 1 :(得分:0)

因此,解决方法就在这里。您可以使用“旧的”身份验证机制创建用户,PHP的MySQL数据库驱动程序仍希望使用该机制。

CREATE USER 'ohdear_ci'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ohdear_secret';
GRANT ALL PRIVILEGES ON ohdear_ci.* TO 'ohdear_ci'@'localhost';

如果您已经有一个拥有数据库权限的现有用户,则可以改为修改该用户。

ALTER USER 'ohdear_ci'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ohdear_secret';

之后,您的PHP代码可以再次连接到MySQL 8。

Reference Link

答案 2 :(得分:0)

您可以在mysql配置中设置指令:

[mysqld]
default_authentication_plugin=mysql_native_password