navicat 连接Docker中mysql容器报错:Client does not support authentication protocol requested by server;

前言: 在服务器上的Docker中启动mysql容器后,用navicat连接,发现弹出一个错误:
在这里插入图片描述

原因:
mysql8 之前的版本中加密规则是mysql_native_password,但是在mysql8之后,加密规则是caching_sha2_password,所以navicat低版本不支持了,要么升级navicat,要么把用户密码登录的加密规则还原成mysql_native_password这种加密方式,因为后者比较装逼,所以选择后者。

步骤:

  • 首先进入docker中的mysql容器
// 7cda7df2329d是mysql容器的id,docker ps 查看正在运行的容器信息
[root@VM_0_15_centos bin]# docker exec -it 7cda7df2329d  bash
  • 进去容器后,进行mysql登入,登入成功后,执行以下两条命令更改加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
  • 更改后,再次用navicat连接成功。

参考来源:https://blog.csdn.net/yy763496668/article/details/80208930

©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值