1. 复现错误
今天使用Navicat
准备连接mysql
,如下图所示:
点击连接测试
按钮时,却报出如下错误:
即1251- Client does not support authentication protocol requested by server;consider upgrading Mysql client
2. 分析错误
正赶上最近ChatGPT
比较火,借助它来分析我的问题,如下图所示:
ChatGPT
说我版本太低,建议我升级客户端的版本,升级客户端的版本不太可能。因为,完全卸载mysql
还是比较麻烦的。
因而,ChatGPT
没有解决我的问题,我只能通过如下的方式解决该问题了。
- 首先找到
mysql
的bin
目录,mysql bin
目录的默认路径为:C:\Program Files\MySQL\MySQL Server xx \bin
。在地址栏中输入cmd
指令,如下图所示:
- 在
cmd
窗口,输入mysql
数据库的用户名和密码,登录mysql
数据库,如下图所示:
- 执行如下
mysql
查询用户信息的命令
SELECT
HOST,
USER,
PLUGIN,
authentication_string
FROM
mysql.USER;
注意以下三点:
-
host
为%
表示不限制ip
。
-
localhost
表示本机使用
-
plugin
非mysql_native_password
,则需要修改密码
mysql8
之前的版本中,加密规则是mysql_native_password
。
而在mysql8
之后,加密规则是caching_sha2_password
。
解决该问题的方法,有以下两种:
升级navicat
驱动很麻烦,因而,我采用方法2
解决,具体操作步骤如下。
3. 解决错误
在命令行输入如下命令,修改密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
或者
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
再次在Navicat
中连接mysql
,连接成功,如下图所示:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)