当通过windows主机navicat连接虚拟的mysql时报如下错误。Client does not support authentication protocol requested by server; consider upgrading MySQL client


通过查看网上别人遇到的相关问题,发现是由于navicat版本的问题,出现连接失败的原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。

两种解决方法

1.升级navicat,由于navicat是收费的,个人感觉升级会比较麻烦点。

2.把用户密码登录的加密规则还原成mysql_native_password这种加密方式,本人选择第二种解决方案

问题解决
按照步骤

1.mysql -u root -p 输入密码进入mysql数据库

2.输入下面命令,更改加密方式

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

3.更新一下用户的密码这里的password为你修改的新密码。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自己的mysql密码';

4.刷新权限,使自己的修改生效。

FLUSH PRIVILEGES;

5.退出mysql:

mysql>quit

可以用navicat正常连接数据库了

视图参考


转载于:navicat 连接不上虚拟机上的mysql容器 client does not support authentication protocol requested by server; consid_yubin1285570923的博客-CSDN博客

此贴为我个人学习参考借鉴记录使用,再此感谢原帖主人

更多推荐

navicat连不上mysql client does not support authentication protocol requested by ser