navicat for mysql 连接时报错:1251-Client does not support authentication protocol requested by server

今天在虚拟机上使用docker安装了mysql(默认拉取了最新的mysql版本),端口映射后再本地使用navicat for mysql连接的时候报错:

说是客户端不支持服务器要求的认证插件

进入mysql容器,输入如下命令查看系统用户对应的认证插件

可以看到当前版本root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html

也就是说8.0的默认认证插件是caching_sha2_password,而不是之前的mysql_native_password. 使用8.0的mysql就必须使用支持此插件的客户端版本。
plugin的作用之一就是处理后的密码,不同的plugin处理后密码的格式和长度是不一样的,类似于使用MD5加密和使用base64加密,对于同一个明文处理后的格式是不一样的。

我们可以升级navicat驱动或者把mysql用户登录密码加密规则还原成mysql_native_password. 

这里采用第二种方式

mysql官方网站提供了从当前caching_sha2_password降级到mysql_native_password,我们可以仿照这个

在mysql服务端执行

#1.修改root的密码为'123456' 2.使用mysql_native_password对新密码进行编码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改后再使用客户端登录成功

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值