php-mysqlnd连接mysql 8.0报错:The server requested authentication method unknown to the client,出现这个问题的原因是因 mysql8.0 引入了新特性 caching_sha2_password,而老版本的php-mysqlnd用的是mysql_native_password加密插件,解决方法如下:
1. 用如下语句查看MySQL当前加密方式
select host,user,plugin from user;
2. 使用命令将root用户修改成mysql_native_password加密模式
update user set plugin='mysql_native_password' where user='root';
3. 配置文件[mysqld]部分
[mysqld] default_authentication_plugin=mysql_native_password
3. 创建基于native_password的帐号
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'userpasswd'; GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';