Mac系统下  遇到 Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested  by server;报错的问题解决办法

报错:Client does not support authentication protocol requested 

by server; consider upgrading MySQL client

大部分童鞋会选择尝试许多博友推荐的如下常见方式来解决:(我也尝试过)

其一: 
mysql> SET PASSWORD FOR 
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd'); 
其二: 
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') 
-> WHERE Host = 'some_host' AND User = 'some_user'; 

mysql> FLUSH PRIVILEGES;

但还是会报错 ,根本无法重置password,换成如下语句 UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';  也不行,为什么会报错呢?

原因在于MySQL8.0换了加密插件,而数据库管理客户端还是原来旧版本的加密方式,主要在于安装MySQL8.0过程中的Authentication Method这一配置过程,有了不同的加密方式,所以如果选择强加密(默认应该是这种),就会出现上诉报错问题,那么只要修改一下加密方式为保留旧版本的加密方式就ok了,具体操作如下

如果你遇到下图报错这样报错的问题,可尝试后面的办法解决,亲测有效。

下图为连接报错


解决办法:

1、打开系统偏好设置:

2、找到 MySQL 点击打开:


3、点击红色标注,停止运行MySQL服务器:


4、在弹出的提示框输入密码允许该操作(你自己的Mac用户名和密码):


5、此时MySQL服务器已经停止运行,点击箭头指向按钮初始化MySQL(切记!在进行初始化操作前务必备份好你的MySQL里面你认为重要的东西 包括数据库数据表等等):


6、你会看到弹出的如下界面,输入MySQL用户密码,下面的第一个就是之前说到的强加密,不要选强加密,选择UseLegacy Password Encryption,点击 OK:



7、点击 Start MySQL Server 重新启动服务器,再根据需求创建自己的数据库数据表什么的,再用Navicat连接时就可以连接成功了。


8、下图是我连接了自己创建的数据库STCS及里面的数据表,然后就可以在Navicat进行数据库管理等其他的操作了。


MySQL初学者,第一次写博客,如有不妥之处请大家见谅,希望能帮到跟我遇到同样问题的童鞋们~



Logo

更多推荐