解决:navicat for mysql连接失败

1、问题描述:
在navicat for mysql 连接mysql 8.0.23时,出现如下错误。
在这里插入图片描述
2、原因:
通过百度翻译,发现是由于navicat版本的问题,出现连接失败的原因。这也就是说需要升级navicat版本。通过搜索,发现navicat是收费的,升级将会面临其他不可控的问题。
于是需要寻找其他方法。通过查阅资料以及他人的经历分享。我得知了:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
也就是说,如果navicat不能升级,那么把“mysql”“降级”试试?因此,从新知入手,将mysql8的加密规则修改为mysql8之前的规则。
3、解决:
(1)输入命令查看用户信息:
select host,user,plugin,authentication_string from mysql.user;
在这里插入图片描述

由上图可以发现:root用户对应的plugin是:caching_sha2_password。
(2)输入命令修改root的加密规则:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
同时更新一下navicat连接mysql用户的密码: root用户密码为:“新密码”。
其中@后面的‘localhost’是root用户对应的host名,如下图中黄色圈出部分:
在这里插入图片描述
(3)再次查看用户信息:
在这里插入图片描述
由上图可以发现:root用户对应的plugin已经改为:mysql_native_password。
4、再次连接:
打开navicat for mysql 建立连接,密码输入第3、(2)步骤的“新密码”,连接成功:
在这里插入图片描述


版权声明:本文为yaoyaoyao_zhi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。