1.下载mysql镜像
>docker pull mysql:8.0.26
2.查看镜像
>docker images
3.先创建mysql8容器找出my.cnf
>mysql run --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
4.进入容器查看my.cnf
>docker exec -it mysql8 /bin/bash
>mysql --help |grep my.cnf
5.将my.cnf复制到宿主机,并修改参数
>docker cp mysql8:/etc/my.cnf /opt/mysql/etc/
#my.cnf参数修改后数据如下
[mysqld]
port=3306
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
bind-address = 0.0.0.0
# 允许最大连接数
max_connections=10000
# # 允许连接i失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
# Custom config should go here
!includedir /etc/mysql/conf.d/
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# # 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
6.停止并删除之前的mysql8
>docker stop mysql8
>docker rm mysql8
7.重启mysql8并挂载配置(提前在宿主机创建相关目录)
>docker run --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --mount type=bind,src=/opt/mysql/etc/my.cnf,dst=/etc/mysql/my.cnf --mount type=bind,src=/opt/mysql/data,dst=/var/lib/mysql --restart=on-failure:3 -d mysql:8.0.26
8.进入mysql8容器修改root信息
>docker -it mysql8 /bin/bash
>mysql -uroot -p
>use mysql;
>alter user 'root'@'%' identified with mysql_native_password by '123456';
>flash privileges;
9.远程登录mysql进行操作



