1.环境说明
宿主机:win10
docker:Version 18.06.1-ce-win73 (19507)
mysql:8.x(docker store中最新版)
2.报错描述
使用navicat连接工具,连接报错如下:
3.报错原因说明
由于新版本的MySQL新特性导致的,通过查询mysql
1 | mysql> select Host,User,plugin from mysql.user; |
查询结果
+———–+——————+———————–+
| Host | User | plugin |
+———–+——————+———————–+
| % | root | caching_sha2_password |
| % | vuluser | caching_sha2_password |
查询结果如上,在老版本里,一般使用加密方式为mysql_native_password,因为认证方式改变导致的。
4.修改方案
修改加密方式为老版本加密方式。
5.修改
5.1 查看docker容器ID
docker ps -a
5.2 docker exec :在运行的容器中执行命令
1 | docker exec -it 236b2624632d bash # 进入到自己的容器中操作 |
5.3 连接mysql
1 | mysql -u root -p |
5.4 修改加密方式
执行命令,将用户的加密方式改为mysql_native_password,密码为root。
1 | alter user 'root'@'%' identified with mysql_native_password by 'admin'; |
5.5 执行命令flush privileges使权限配置项立即生效
1 | flush privileges; |