docker安装mysql8并配置远程访问

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即可