docker安装MySQL远程连接报错 2059

使用docker安装MySQL后 使用如下命令启动MySQL 远程无法连接

docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

使用Navicat进行链接测试,发现报错2059

报错信息如下

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password'  xxx

经过查询资料 发现是由于MySQL版本过高,在MySQL8之前的版本使用的加密方式是mysql_native_password,MySQL8之后更改为caching_sha2_password,目前navicat并不支持这种加密方式。

解决方案:

既然知道了为什么产生的这个问题 就比较好解决了,首先先进入容器,登录MySQL,执行几条SQL即可

先贴代码图 docker安装MySQL远程连接报错 2059_第1张图片


细节代码分析如下

# docker exec -it mysql /bin/bash   进入容器
# 如果是远程连接的话请将'localhost'换成'%'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户密码
FLUSH PRIVILEGES; #刷新一下权限
exit #退出MySQL 

之后完美解决这个问题,连接成功
docker安装MySQL远程连接报错 2059_第2张图片


全面发展,一专多能!!!

你可能感兴趣的:(解决方案,docker,mysql)