mkdir /home/mysql
mkdir /home/backup
记得修改脚本账号密码哦~
#!/bin/bashecho '开始备份数据'# 定义 MySQL 容器名称和备份目录
MYSQL_CONTAINER="mysql"
BACKUP_DIR="/home/backup"# 定义 MySQL 容器中的数据库用户名、密码和备份文件名
MYSQL_USER="root"
MYSQL_PASSWORD="root"
BACKUP_FILE="${BACKUP_DIR}/db_backup_$(date +%Y%m%d%H%M%S).sql"# 执行备份命令
docker exec ${MYSQL_CONTAINER} mysqldump --default-character-set=utf8mb4 --single-transaction -u ${MYSQL_USER} -p${MYSQL_PASSWORD} --all-databases > ${BACKUP_FILE}# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "MySQL 数据库备份成功:${BACKUP_FILE}"
elseecho "MySQL 数据库备份失败"
fi# 删除14天前的备份文件
find ${BACKUP_DIR} -type f -name "*.sql" -mtime +14 -deleteecho '完成备份'
sh /home/mysql/db-backup.sh
查看/home/backup 是否有备份的文件
yum install crontabs (安装 crontabs)
systemctl enable crond (设为开机启动)
systemctl start crond(启动crond服务)
systemctl status crond (查看状态)
crontab -e 编辑定时任务
1 1 * * * sh /home/mysql/db-backup.sh 每天凌晨一点一分运行
esc --> :wq 保存
保存定时任务之后出现这个 就表示成功了
crontab: installing new crontab
crontab -l 查看定时任务
注:为了测试定时任务是否可用 可以把前两个1 改成当前时间的晚几分钟进行测试
定时任务 第一个数是分 第二个数是时(0-23)
将db.sql文件导入到容器/目录下
//docker cp 数据库备份文件 docker容器的ID:/
docker cp db_20200904.sql 77cd88f28cb7:/var/backups
进Docker入容器内
docker exec -it docker容器的ID bash
在容器内执行命令即可成功导入
source /var/backup/db_20200904.sql
退出容器 exit
或者
mysql -u root -p < /var/backup/db_backup_2023-06-09.sql
注:
导出所有库到一个sql文件中,通过Navicat或者将sql粘贴到工具中是无法导入成功的
环境中不能有和server-mysql相同的服务
本文发布于:2024-02-05 04:42:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170724404063134.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |