Docker使用mysqldump命令备份导出mysql容器中的数据

494 阅读1分钟

Docker使用mysqldump命令备份导出mysql容器中的数据

1、查看Docker中运行的容器

[root@localhost ~]# docker ps

2、使用mkdir 创建备份目录

[root@localhost ~]# mkdir -p /data/reggie/dbbak/

3、数据库备份脚本

#!/bin/bash#在使用之前,请提前创建以下各个目录#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
backUpFolder=/data/reggie/dbbak/
username="root" 
db_name="reggie"
password="1234"#定义备份文件名
fileName="${db_name}_${date_now}.sql"#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."#进入容器执行备份命令
docker exec -it mysql /usr/bin/mysqldump -u${username} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}#进入到备份文件目录
cd ${backUpFolder}#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}rm -f ${fileName}#rm backup the latest 7 days
find ${backUpFolder} -mtime +7 -name "${db_name}_*.sql.tar.gz" -exec rm -f {} ;

4、上传至服务器

chmod a+x mysqlbak.sh
./mysqlbask.sh

5、创建定时任务

crontab -e
0 3 * * *  sh /data/reggie/dbbak/mysqlbak.sh
/sbin/service crond start