本地远程连接Docker中的MySQL报错的解决办法(1251)

错误如下:
本地远程连接Docker中的MySQL报错的解决办法(1251)_第1张图片
原因:mysql 8.0 默认使用 caching_sha2_password 身份验证机制;客户端不支持新的加密方式
解决方案:修改用户(root)的加密方式

1.进入mysql容器内部,在docker中输入

docker exec -it mysql02 bash

本地远程连接Docker中的MySQL报错的解决办法(1251)_第2张图片

2.登录mysql

mysql -u root -p

如图所示输入123456回车即可
在这里插入图片描述

3.设置用户配置项

(1)查看用户信息

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

(2)修改加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';   //123456是mysql的登录密码

(3)再次查看用户信息

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

本地远程连接Docker中的MySQL报错的解决办法(1251)_第3张图片
(4)再次使用Navicate等数据库软件连接,成功
本地远程连接Docker中的MySQL报错的解决办法(1251)_第4张图片
(5)补充:如果要正常退出不关闭容器,可以通过按Ctrl+P+Q进行退出容器
从mysql中退出容器:Ctrl+D,按两次

借鉴自“简书”:https://www.jianshu.com/p/07a37159f85c
在此感谢作者:tengxt

你可能感兴趣的:(Docker,数据库操作,虚拟机)