当我尝试连接到数据库时,在使用MySql 8.0.13 Server的PHP Symfony4 / PDO学说中,出现此错误:
驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求了客户端未知的身份验证方法
答案 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。
答案 2 :(得分:0)
您可以在mysql配置中设置指令:
[mysqld]
default_authentication_plugin=mysql_native_password