当我们用Navicat Premium连接MySQL时,点击连接测试,会出现报错:
错误信息为:
2059 – authentication plugin ‘caching_sha2_password’ cannot be loaded
在终端登录MySQL,查看加密方式,输入命令:
show variables like \'default_authentication_plugin\';
结果显示:
这里应该是我改过的缘故,MySQL (8以上的版本)的默认加密方式为\”caching_sha2_password\”
我们再查看一下MySQL本地用户的加密方式,执行命令:
select host,user,plugin from mysql.user;
结果显示:
可以看到,root用户的加密方式为\”caching_sha2_password\”
但是Navicat Premium 不支持这种用户登录账户加密方式,所以我们就要修改用户登录账户加密方式,执行命令:
ALTER USER \'root\'@\'%\' IDENTIFIED WITH mysql_native_password BY \'root\';
注意这里的
\'root\'@\'%\'
,是要根据你的user和host来写的,从上图中我们可以看到,我的 user 为 root,我的 host 为 %,所以我写为
\'root\'@\'%\'
。
还有最后的
BY \'root\'
,这里的’root’是你MySQL的密码。
再来查看一下MySQL本地用户的加密方式:
select host,user,plugin from mysql.user;
可以看到,我们root用户的加密方式已经改为“mysql_native_password”
现在我们再来连接测试一下。
连接成功!