docker部署MySql8 使用Navicat连接出现Client does not support authentication protocol requested by server;

本文介绍了如何处理MySQL8.0及以上版本与低版本Navicat无法连接的问题,主要涉及caching_sha2_password认证机制不兼容的情况。通过进入MySQL容器,切换root用户,修改root用户的密码加密方式为mysql_native_password,并刷新权限,最终成功连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是因为mysql 8.0以上版本默认使用 caching_sha2_password 身份验证机制;低版本Navicat客户端不支持新的加密方式。
而我在docker中安装的mysql是用docker pull mysql命令安装的,由于默认版本号是最新的,所以版本一定在8.0以上。

命令查询出mysql的容器id

docker ps 

命令进入容器命令行

docker exec -it 容器id bash

如下图
在这里插入图片描述

进入mysql命令行模式

mysql -u root -p

如下图,输入密码
在这里插入图片描述

查看用户信息后面 ; 不要丢

select host,user,plugin,authentication_string from mysql.user;

在这里插入图片描述
host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

使用mysql_native_password加密方式加密,这里要修改一下密码(可以使用老密码)

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY BY '你的密码';

刷新生效

flush privileges;

再次查询
在这里插入图片描述
然后尝试连接就可以连接成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值