1:下载mysql8镜像,选择对应的版本,我这里使用8.0.29
docker pull mysql/mysql-server:8.0.29
2:启动容器
docker run --name mysql8 -p 4306:3306 -e MYSQL_ROOT_PASSWORD=123456
-v D:\tools\dockerData\mysql8\data:/var/lib/mysql
-v D:\tools\dockerData\mysql8\log:/var/log/mysql
-d mysql/mysql-server:8.0.29
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--datadir=/var/lib/mysql
--default-authentication-plugin=mysql_native_password
注意:
--default-authentication-plugin=mysql_native_password
这个参数是修改密码策略,原来Mysql在之前的版本的关于password的加密方法都是使用的 mysql_native_password,不过到MySQL8.0的时候换成了caching_sha2_password
3:通过命令 docker ps 查看容器是否启动成功,这个时候使用Navicat连接mysql会报错,提示不允许访问,这个时候进入容器内部修改权限。
1:docker exec -it mysql8 bash
2:mysql -uroot -p123456
3:use mysql;
4:select user,host from user;
5:update user set host='%' where user='root';
6:flush privileges;
4:重新使用Navicat连接mysql即可