3. 使用crontab进行定时备份
#docker #mysql #crontab #mysqldump
使用mysqldump进行备份
sudo docker exec -it mysql /bin/bash
#进入mysql容器
mysqldump -uroot -pYOUR_PASSWORD --all-databases/[YOUR_DATABASE] > emp_`date +%F`.sql
#在容器中备份所有数据库,并以日期命名
exit
#退出容器
sudo docker cp mysql:BACKUP_FILE.SQL /var/backup/
#将容器中的备份文件,复制到本地备份文件夹中
容器中还原
#复制备份文件到容器中的var目录
sudo docker cp /var/backup/BACKUP_FILE.SQL mysql:/var
#进入容器
sudo docker exec -it mysql bin/bash
#进入mysql
mysql -uroot -p
#使用备份sql恢复数据库
source /var/backup/BACKUP_FILE.SQL
#或者不进入mysql直接容器中还原
mysql -uroot -pYOUR_PASSWORD < /var/backup/BACKUP_FILE.SQL
定时任务
#创建定时任务
crontab -e
#填入任务
0 2 * * * find /backup/ -mtime +1 -name "*.sql" -delete && sudo docker exec mysql sh -c 'exec mysqldump --all-databases/[DATABSE] -uroot -p123456 --all-databases/[DATABSE]' > /var/backup/BACKUP_FILE.SQL