Docker搭建MySQL并挂载数据的全过程

记录 Docker 搭建 MySQL 并挂载数据过程,搭建过程参考自Docker Hub。

 

一、Docker搭建MySQL并挂载数据

1、首先安装好 Docker,不知道怎么安装的可以看下CentOS7安装Docker初体验。

2、下载 MySQL5.7 镜像。

docker pull mysql:5.7

3、创建容器并挂载数据。

docker run -d --restart=always --name mysql \
-v /itwxe/dockerData/mysql/data:/var/lib/mysql \
-v /itwxe/dockerData/mysql/conf:/etc/mysql \
-v /itwxe/dockerData/mysql/log:/var/log/mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci

参数说明:

-v /itwxe/dockerData/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机
-v /itwxe/dockerData/mysql/conf:/etc/mysql:将配置文件夹挂在到主机,可以在宿主机放一份自定义 my.cnf文件,那么容器就会按自定义配置启动
-v /itwxe/dockerData/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e MYSQL_ROOT_PASSWORD=123456:初始化123456用户的密码
--character-set-server=utf8mb4:设置字符集
--collation-server=utf8mb4_general_ci:排序方式

4、进入 MySQL 容器内部。

docker exec -it mysql /bin/bash

5、登录 MySQL。

mysql -uroot -p123456

6、查看字符集是否生效。

show variables like 'character_set_%';

 

二、挂载是否生效

1、上传备份 sql 到宿主机,复制宿主机备份 sql 到容器。

docker cp /itwxe/dockerData/sunny.sql mysql:/

2、进入 mysql 容器内部,导入sql。

docker exec -it mysql /bin/bash

mysql -uroot -p123456

create database sunny;
use sunny;
source /sunny.sql;

3、数据导入成功可以查询后,删除容器,并重新用命令创建容器,查看数据存在。

docker stop mysql && docker rm mysql

使用上面的命令重新创建容器,查看数据是否正常,可以看到数据正常挂载查询,此处演示的数据正常挂载保存宿主机。

 

其他

1.可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了,例如:

$ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql

2.查看所有容器(启动状态或者关闭状态)

$ sudo docker ps -a

3.启动和关闭容器

启动命令:

$ sudo docker start pwc-mysql   //通过指定容器名字
$ sudo docker start 73f8811f669e  //通过指定容器ID

关闭命令:

$ sudo docker stop pwc-mysql   //通过指定容器名字
$ sudo docker stop 73f8811f669e  //通过指定容器ID

 

总结

关于Docker搭建MySQL并挂载数据的文章就介绍至此,更多相关Docker搭建MySQL挂载数据内容请搜索编程宝库以前的文章,希望以后支持编程宝库

前天写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。后来发现 join on and 不会过滤结果记录条数,只 ...