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

发布了151 篇原创文章 · 获赞 126 · 访问量 37万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览