mysql安装navicat之后,出现2059,Authentication plugin及本地链接虚拟机docker,远程链接服务器

mysql安装navicat之后,出现2059,Authentication plugin及本地链接虚拟机docker,远程链接服务器

序言

在安装完MySql和navicat之后,进行连接时报出了ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password' cannot be loaded: ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£.我起初认为是我没设置密码的原因。便在命令行模式下设置了密码值得一提的是在登陆root之后
设置密码应该是 set password =‘你的密码' 而不是 什么password =password 什么的,你看见让报错是syntax时,就应该考虑这句代码是不是有问题。

这里特别提示一下:凡是远程(虚拟机,tencent ali服务器类似的东西) 命令中的localhost都应该替换为'%'

正文

1.2059 Authentication plugin

当我重新链接时,发现还是有问题。这句话是说认证插件的问题
排查下:

SELECT `user`, `host`, `authentication_string`, `plugin` FROM mysql.user;

进行排查

mysql安装navicat之后,出现2059,Authentication plugin及本地链接虚拟机docker,远程链接服务器

修改root账号的密码验证插件类型为mysql_native_password这是mysql8之后的问题:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则password是自己的密码,root也是登陆账户,下同。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 

FLUSH PRIVILEGES; #刷新权限 
SELECT `user`, `host`, `authentication_string`, `plugin` FROM mysql.user;

mysql安装navicat之后,出现2059,Authentication plugin及本地链接虚拟机docker,远程链接服务器

这个问题解决完毕。

------------------------------------分割线-----------------------------------------------------------------------
这里更新一个我在使用本地win10链接虚拟机中docker报同样问题的解决办法。在docker中的mysql执行。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
#更新一下用户的密码 

凡是远程这里的localhost一定要换成%。

2019/9/11
今天远程链接腾讯服务器mysql同样报错,先是1130错,1130怎么解决看我另一篇文章,然后又是2059.解决方案同上。到腾讯服务器中的mysql执行

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
 #更新一下用户的密码 

问题解决。