【mysql】docker 安装的mysql 进行存储转移

背景:

docker安装的mysql,版本5.7.0

因为运行了很长一段时间,df -h 查看时,磁盘使用率已经99%

所以需要重新部署mysql,将mysql的docker 文件移动到另一个比较大的磁盘上。

 

处理步骤:

1、空闲时间段,关闭这个服务器上的mysql

2、在新的磁盘上新建文件夹 dockerdb

3、将原来的 dockerdb copy到新的磁盘上

     copy -r /usr/local/dockerdb /tzgData/dockerdb

4、停掉原来的mysql

5、重新部署,指向新的mysql docker路径,部署命令如下

     

docker run -d  -v /tzgData/dockerdb:/var/lib/mysql/  -v /home/Michael/mysql/max.conf:/etc/my.cnf  --privileged=true --name mysql_docker5  -e MYSQL_DATABASE=dockertest -p 33063306 dockerhub.50yc.com/it/mysql:5.7.31

说明:/tzgData/dockerdb:/var/lib/mysql/ 是将新的dockerdb与 容器内做了关联

          /home/Michael/mysql/max.conf:/etc/my.cnf 是将虚拟机上的配置与容器内的mysql的配置做了映射:可以直接改虚拟机这个文件的配置,然后重启mysql ,就会生效。

         部署命令没有使用 密码信息,因为copy的docker文件中,是有账号相关信息的,这里去设置账号相关的,就会重置。

         部署的版本是5.7.31。因为发现这个版本的,才能使用第二条配置的映射。之前的5.7.0 不能起作用。

6、修改 /home/****/mysql/max.conf

      

      再次重启mysql,以上几个参数就会生效。

      删除掉 /usr/local/mysqldb ,再次df -h 能看到磁盘使用率降下来了

7、附上初次部署使用的完整命令

     

docker run -d  -v /tzgData/dockerdb1:/var/lib/mysql/  -v /home/*/mysql/max.conf:/etc/my.cnf  --privileged=true --name mysql_docker -e MYSQL_USER=test -e MYSQL_PASSWORD=Docker#1234 -e MYSQL_ROOT_PASSWORD=Docker#1234 -e MYSQL_LOWER_CASE_TABLE_NAMES=1 -e MYSQL_DATABASE=dockertest -p 3308:3306 dockerhub.50yc.com/it/mysql:5.7.31

 

你可能感兴趣的:(mysql,docker)