错误提示:The server requested authentication method unknown to the client [caching_sha2_password]

一、原因

从MySQL 8.0.4开始,MySQL服务器的默认身份验证插件从mysql_native_password更改为caching_sha2_password。相应地,libmysqlclient现在也将caching_sha2_password用作默认身份验证机制。
mysql8的默认密码加密方式是caching_sha2_password,PHP7.4连接mysql的加密方式也为caching_sha2_password,这个地方要注意。

当为了兼容旧版的客户端不只是PHP,还有在主从复制的时候也会有问题,mysql8的认证方式改回了mysql_native_password。如果使用PHP7.4的情况下,这里就会认证报错,因为7.4是caching_sha2_password加密方式,因此这里我可以改用成PHP7.2

二、查看情况

1、在MySQL 8.0 Command Line Client命令窗口,输入密码,

输入use mysql;

输入SELECT Host, User, plugin from user;

可以看出使用的都是caching_sha2_password用作默认身份验证机制(这里的红框,是我解决后的图片,原来4个都是caching_sha2_password)

二、解决方法

1、常见解决方法,直接接着上面的步骤,

先输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';修改权限

再输入FLUSH privileges;刷新权限

标签: none

添加新评论