数据库备份: 备份 Docker
里的 MySql
注:确保你已经安装了 Docker
和 MySQL
,并且 MySQL
容器正在运行。
1. 创建备份目录:
创建一个备份目录,用于存储备份文件。例如,在/backup
目录下创建一个名为mysql-backups
的子目录。
mkdir -p /backup/mysql-backups
2. 编写备份脚本
编写一个Shell脚本(例如backup-mysql.sh
),用于执行备份操作。以下是一个简单的示例脚本,它使用mysqldump
命令导出MySQL数据库,并将备份文件保存到指定的目录。
#!/bin/bash
# MySQL容器名称或ID
CONTAINER_NAME="your-mysql-container"
# 备份文件存储路径
BACKUP_DIR="/backup/mysql-backups"
# 当前日期作为备份文件名的一部分
BACKUP_FILE="${BACKUP_DIR}/backup_$(date +%Y%m%d_%H%M%S).sql"
# 执行备份命令
docker exec -it ${CONTAINER_NAME} mysqldump -u your_mysql_username -pyour_mysql_password your_database_name > ${BACKUP_FILE}
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "MySQL backup completed successfully: ${BACKUP_FILE}"
else
echo "MySQL backup failed."
fi
确保将your-mysql-container
替换为你的MySQL容器的实际名称或ID,your_mysql_username
、your_mysql_password
和your_database_name
替换为你的MySQL用户名、密码和数据库名称。
3. 添加权限与设置定时任务
3.1. 为脚本添加执行权限
chmod +x /path/to/backup-mysql.sh
3.2. 设置定时任务
设置一个定时任务(cron job)来自动执行备份脚本。编辑cron表:
crontab -e
添加一行来定义何时运行你的备份脚本。例如,如果你想每天凌晨2点执行备份,可以添加以下行:
0 2 * * * /path/to/backup-mysql.sh
保存并退出编辑器。