我在本地电脑安装的MySQL版本是5.7.x的, 平时用SQLyog连接一切正常, 今天需要用SQLyog连接云服务器上的MySQL就报错Plugin sha256_password could not be loaded:
这个错误出现的原因是从MySQL8.x版本开始, 身份验证插件改为了caching_sha2_password
, 而之前的版本为mysql_native_password
. 我们现在用的很多MySQL客户端暂时还不支持新的身份验证插件. 对了, IDEA是支持的, 所以用IDEA连接MySQL 8.x数据库没有这个问题.
官方博客有介绍这个新的身份验证插件: MySQL官方博客
解决办法:
登录远程云服务器, 登入mysql的root账号, 然后查询:
SELECT user, host, plugin from mysql.user;
默认的验证器插件为 caching_sha2_password
, 改回mysql_native_password
即可:
alter user 'username'@'localhost' identified with mysql_native_password by '123456';
alter user 'username'@'%' identified with mysql_native_password by '123456';
username
处填你的用户名称, @
后面跟localhost 还是 %, 按你实际的来填, 最后面的是密码.
修改完毕后刷新一下:
FLUSH PRIVILEGES;
看看是否生效:
SELECT User, Host, plugin from mysql.user;
再回到SQLyog就可以正常登陆.
其实最正确的做法应该是找支持MySQL8.x的客户端,这样更安全.