1、从docker中获取mysql8.0.13镜像
docker pull mysql:8.0.13
通过 docker images 命令查看镜像是否获取到了
2、运行 mysql8.0.13 镜像
docker run --name mysql8013 -p 8323:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.13
通过 docker ps 命令查看镜像是否启动成功
3、登陆mysql
mysql -uroot -proot -D mysql8013
发现登陆不上去,因为mysql8之后root用户的密码验证方式变了。root的用户的加密方式为caching_sha2_passoword,而navicat连接所用的方式为native_password。
4、解决方法:进入mysql8.0.13容器
docker exec -it mysql8013 /bin/bash
5、在容器里面登陆数据库
mysql -uroot -proot
mysql为远程连接和本地连接提供了不同的密码验证方式。所以在容器里可以登陆。
6、进入mysql库,查看user表,可以看到root加密方式
use mysql;
select host, user, plugin from user G
7、修改root用户插件验证方式:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
8、刷新权限
flush privileges;
9、然后退出mysql