1.拉取镜像
docker pull mysql:8.0.22
2.创建容器并运行
docker run -d --restart=always --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.22
3.创建挂载目录
mkdir ~/mysql
4.将mysql数据文件、配置文件、日志文件从容器拷贝到宿主机中创建的挂载目录中
docker cp mysql:/var/lib/mysql ~/mysql/data
docker cp mysql:/etc/mysql ~/mysql/conf
docker cp mysql:/var/log ~/mysql/log
5.删除之前的旧容器
docker rm -f mysql
6.修改配置文件
vim ~/mysql/conf/my.cnf
比如:我们想要设置表名不区分大小写,可以在配置文件中添加配置lower_case_table_names=1
有些配置在mysql初始化之后是不能修改的,比如这个不区分大小写的配置;要修改这个配置,我们可以删除挂载的data目录下的所有内容(也可以在前面不执行docker cp mysql:/var/lib/mysql ~/mysql/data)
sudo rm -rf ~/mysql/data/*
7.创建启动shell脚本,方便以后启动
mkdir ~/mysql/shell
vim ~/mysql/shell/mysql.sh
输入启动脚本保存
#!/bin/sh
DOCKER_PATH=~/mysql
docker run -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-v $DOCKER_PATH/data:/var/lib/mysql:rw \
-v $DOCKER_PATH/log:/var/log/mysql:rw \
-v $DOCKER_PATH/conf:/etc/mysql:rw \
--name mysql \
--restart=always \
-itd mysql:8.0.22
启动脚本赋予执行权限
cd ~/mysql/shell
chmod +x mysql.sh
8.执行启动脚本,并查看是否启动成功
~/mysql/shell/mysql.sh
docker logs -f mysql
9.远程连接测试