报错解释:
这个错误通常发生在MySQL服务器尝试使用新的认证协议与客户端建立连接时,但客户端不支持这个协议。MySQL 8.0及以上版本默认使用的是caching_sha2_password认证插件,而老版本的MySQL可能使用的是mysql_native_password。如果客户端不支持caching_sha2_password,就会出现这个错误。
解决方法:
-
升级客户端:确保你的数据库客户端软件是最新版本,支持caching_sha2_password。
-
修改服务器认证插件:如果不能升级客户端,可以将MySQL服务器的认证插件改为mysql_native_password。
-
登录MySQL服务器。
-
执行以下命令更改用户的密码认证插件:
sqlALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES; -
其中
username是你的用户名,hostname是你的用户允许连接的主机名,password是你的新密码。 -
最后刷新一下权限
FLUSH PRIVILEGES;
-
请根据实际情况选择解决方案。如果选择第二种方法,请注意这样做会降低安全性,因为新的认证插件caching_sha2_password为SHA256签名提供了更好的支持。