前提
- 使用Navicat登录远程服务器的数据库发现,认证不通过。
- 本文介绍修改远程服务器docker容器下的mysql
- 使用的工具Shell、Navicat
原因分析
mysql8.0版本更新了身份验证,caching_sha2_password
之前mysql版本采用,mysql_native_password, 例如mysql5.7
解决办法
修改身份验证即可
解决步骤
第一步:进入Docker容器下的mysql
- 首先利用Shell登录我们的远程服务器
- 通过docker ps可以查看docker挂载的容器。
- docker一般安装在/var/lib/docker
docker exec -it mysql bash
mysql是别名
第二步:登录MySQL
mysql -u root -p
输入你的密码
第三步:修改加密规则
方法一:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
方法二:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
当方法一行不通时,请尝试一下方法二 !
123456是你的登录密码
第四步:刷新权限
FLUSH PRIVILEGES;