Docker数据卷之Mysql持久化

哈喽,又和大家见面了!回顾下,上节我们记录的是Docker关于数据卷的问题,最后我们留了一个任务就是下节我们进行关于Mysql的实战!

ok,开始之前,说几句,在使用数据卷进行Mysql持久化的时候,是有坑的哟,大家注意了!

1、首先使用命令来创建mysql的容器:

dockerrun-d-p:-v/home/mysql02/conf:/etc/mysql/conf.d-v/home/mysql02/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=--namemysql02mysql:5.7

再来解释下上面的命令:

-d:表示后台运行

-p:端口映射

-v/home/mysql02/conf:/etc/mysql/conf.d:表示将容器中mysql的配置文件挂载到主机的这个目录,来进行数据的同步和持久化

-v/home/mysql02/data:/var/lib/mysql:表示将容器中mysql的数据,也就是库文件等挂载到主机中的这个目录,就是对数据的保存

-eMYSQL_ROOT_PASSWORD=:这个-e表示的安装环境,然后后面就是对你这个数据库进行密码的设置

执行之后,然后使用SQLyog进行连接:

2、这个时候,我来创建一个数据库db_test:

Ok,接下来我们来看下数据卷挂载的主机文件中是否也已经有了这个数据库的存在:

OK的,可以看到这个数据库也已经生成!

然后,我们来测试一下数据的持久化:

首先,直接删除这个容器:

然后在来看下,本地的文件还在不:

可以看到,我们创建的db_test,不会因为容器的删除而删除的!

可以看到,我们创建的db_test,不会因为容器的删除而删除的;

接下来,再创建一个mysql容器,然后将db_test显示出来,然后使用命令,将mysql02中的db_test拷贝到mysql03中:

然后我们使用SQLlog连接新建的mysql容器:

但是,问题来了,问题1:提示没有权限,直接无法打开db_test;问题2:设置权限之后,打开这个数据库中的表,但是却提示错误码:table不存在!

这个地方有好大的一个坑,大家先自行进行思考,如果大家的


转载请注明:http://www.aierlanlan.com/grrz/1306.html