以前用的mysql7,一直用navicat连接都没有问题。最近安装Mysql8之后,在命令界面登陆一切正常,用navicat连接的时候死活连接不上,一直报下面的错误。
Client does not support authentication protocol requested by server; consider upgrading MySQL client
上网查了下,原来是mysql8换了加密插件,而navicat还是用的旧加密方式,所以就连接不上了。
网上有两种解决方案,一种是重新连接Msyql安装程序,重新设置密码加密方式。这种方式不喜欢,跳过了。
还有一种是进数据库里修改,参考:https://blog.csdn.net/Macbook_Yang/article/details/80518372
在命令下进入数据库,运行:
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
FLUSH PRIVILEGES;
注意:原贴里说'root'@'localhost'很多人说用'root'@'%',而他用'root'@'%'失败了。这里要查看自己数据库的user表有没有修改过。如下:
如果root对应的host是'%'的,就写'root'@'%',如果host是'localhost'的,就写'root'@'localhost'。
最后的'mypassword'要改成自己的密码,比如我本人的写法:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';