Docker MySQL备份

建立备份的MySQL容器

1
docker run --name mysql-back -e MYSQL_ROOT_PASSWORD=root -v /srv/mysql/backup:/mysql/backup -d mysql:5.7.17

 

查看虚拟网络,其中 bridge 是 Docker 默认使用的虚拟网络:

1
docker network inspect bridge

  

在返回的结果中,找到 Containers 部分。内容如下:

1
2
3
4
5
6
7
8
9
10
"Containers" : {
   "asdf2334a" : {
     "Name" "mysql-a"
     "EndpointID" "sadfas234"
     "MacAddress" "...."
     "IPv4Address" "192.168.0.2"
     "IPv6Address" ""
   }
 
}

Containers 列出了所有使用 bridge 网络的容器。因为我给 MySQL 服务器容器起名为 mysql-a,所以我查看Name 为 mysql-a 的配置。IPv4Address表示容器mysql-a的虚拟IP是 192.168.0.2 。记录下这个IP 。

进入容器的 bash :

1
docker  exec  -it mysql-b bash

安装VIM和CRON定时任务:

1
2
apt-get update && apt-get install vim
apt-get update && apt-get install cron

生成一个shell脚本文件来进行备份。

1
2
3
4
5
6
7
cat >/zc/mysql/backup.sh <<EOF
#!/bin/sh
zcDATE=\$( date  +%Y%m%d)
mkdir  /zc/mysql/backup/\ $zcDATE
mysqldump -h  '192.168.0.2'  -uroot -p '123456'  --databases db1 > /zc/mysql/backup/\ $zcDATE /db1.sql
mysqldump -h  '192.168.0.2'  -uroot -p '123456'  --databases db2 > /zc/mysql/backup/\ $zcDATE /db2.sql
EOF

MySQL上存在两个数据库,名称分别是 db1 和 db2,利用这种方式在硬盘上备份数据。-h表示远程的服务器IP。-u 和 -p 分别是远程服务器的用户名和密码。这里不建议使用 mysqldump 的 –all-database 选项。因为该选项会把远程MySQL里的系统数据库也备份下来,包括 root 用户的密码等内容。如果你要把导出的内容导入到别的机器上,这些系统设置(比如用户名和密码)会覆盖你的机器上原来的设置。

设置定时任务的启动时间:

1
2
crontab -e
0 23 * * * sh /zc/mysql/backup.sh

启动定时任务

1
service cron start

转载于:https://www.cnblogs.com/huashengxue/p/9578536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值