1.拉官方5.7的镜像

docker pull mysql:5.7

2.在本地创建mysql映射文件夹

mkdir -p /server/mysql/data /server/mysql/logs /server/mysql/conf

3.在/server/mysql/conf中创建.cnf文件

touch my.cnf

3.5 my.cnf的内容如下

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]  #取消 group 严格模式 sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION character-set-server=utf8mb4

4.创建容器

docker run --restart always -p 3307:3306 --name mysql -v /server/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /server/mysql/logs:/logs -v /server/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
注意以上创建容器的命令 对外暴露端口我设置为3307了 ,一般为3306。初始密码为123456
-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数

5.使用docker ps -a 查看是否存在启动起来的名称为mysql的docker容器
同时 查看/root/mysql/data目录是否有数据文件

6.修改mysql的root用户密码

docker exec -it mysql /bin/bash
mysql -uroot -p 
输入密码:123456
SET PASSWORD = PASSWORD('root');  //注意 root为修改后的新密码

7.开启远程访问

grant all privileges on *.* to 'root' @'%' identified by 'root';  //注意 第一个root为root账户 第二个root为修改后的新密码
flush privileges;

8.重启容器

exit退出到初始位置 重启这个mysql的docker容器 docker restart .....

9.检测是否可以使用,使用工具连接,且检验编码

show VARIABLES like 'char%';