Skip to content

如何定时备份使用 Docker 构建的 MySQL 容器中的数据库

【需求】MySQL 服务使用 Docker 构建。在每天的 23:00 将 MySQL 中的 test 数据库备份到宿主机 /dump 目录下,并且文件名加上日期,如:/dump/test_20230927.sql 【解决】 首先在宿主机创建一个定时任务脚本,该脚本将在每天晚上 23:00 执行导出操作。使用 Cron 来调度这个任务。 在 /home 目录下创建一个名为 export_mysql.sh 的脚本文件,并确保给它执行权限:

cd /home
touch export_mysql.sh
chmod +x export_mysql.sh

编辑 export_mysql.sh 文件,添加以下内容:

#!/bin/bash

# 设置导出文件名,使用日期和项目名称作为文件名
container_name="mysql-test" # 容器名称
project_name="test" # 项目名称
mysql_user="root" # 数据库用户名
mysql_password="123456" # 数据库密码
mysql_database="test" # 数据库名称
dump_path="/dump/" # 备份文件存放路径
export_filename="${project_name}_$(date +\%Y\%m\%d).sql" # 导出文件名

# 备份数据库
docker exec ${container_name} mysqldump -u${mysql_user} -p${mysql_password} ${mysql_database} > ${dump_path}${export_filename}

设置一个 Cron 任务,以便每天晚上 23:00 运行 export_mysql.sh 脚本。打开终端,运行以下命令来编辑 Cron 任务:

crontab -e

在 Cron 编辑器中,添加以下行来设置每天晚上 23:00 运行导出脚本:

0 23 * * * /home/export_mysql.sh
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!