以前使用的mysql5.0.x版本,使用navicat连接没有问题。最近安装mysql8.0之后用命令行登录一切正常,用navicat连接的时候死活连接不上。一直报下面的错误。
Client does not support authentication protocol requested by server; consider upgrading MySQL client
上网查了下,原来是mysql8换了加密插件,而navicat还是用的旧加密方式,所以就连接不上了。
网上有两种解决方案,一种是重新连接Msyql安装程序,重新设置密码加密方式。这种方式不喜欢,跳过了。
还有一种是进数据库里修改,参考:
在命令下进入数据库,运行:
1.USE mysql;
2.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
3.FLUSH PRIVILEGES;
如果root对应的host是’%‘的,就写’root’@’%’,如果host是’localhost’的,就写’root’@‘localhost’。
最后的’mypassword’要改成自己的密码,比如我本人的写法:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';