Docker部署的MySQL容器服务如何备份
1,备份数据
编写一个备份脚本mysql_backup.sh,内容如下 如果需要备份所有的数据库只需要修改--databases ghost为-A即可,这样就会在指定的目录生成压缩文件。解压用gzip -d xxxxx.sql.gz命令
#!/bin/bash
docker exec mysql sh -c 'exec mysqldump --databases ghost -uroot -p"MYSQL_ROOT_PASSWORD"' | gzip > /root/workspace/backup/data/ghost_$(date +%Y%m%d_%H%M%S).sql.gz
docker exec mysql sh -c 'exec mysqldump --databases job -uroot -p"MYSQL_ROOT_PASSWORD"' | gzip > /root/workspace/backup/data/job_$(date +%Y%m%d_%H%M%S).sql.gz
增加定时任务,把下面的cron表达式加入定时任务中,每天凌晨1点执行,根据自己实际情况修改路径指向上述的脚本位置
crontab -e
0 1 * * * /root/workspace/backup/mysql_backup.sh
验证下定时任务是否保存成功
crontab -l
2,恢复数据
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/workspace/backup/data/xxx.sql