第一种备份:(比较麻烦)
docker exec -it mysql bin/bash 进入容器 mysqldump -uroot -proot --all-databases > emp_`date +%F`.sql 以日期.sql为文件名备份所有数据库至当前目录 exit 退出 docker cp mysql:emp_2022-04-21.sql /var/backup/ 将容器里的备份文件复制到宿主机的备份目录
第二种备份(一步到位)
docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -proot --all-databases' > /var/backup/bcksql_`date +%F`.sql 进入容器备份所有数据库以日期.sql结尾并将备份文件复制到宿主机的备份目录下定时备份
crontab -e 0 2 * * * find /var/backup/ -mtime +9 -name "*.sql" -delete && docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -proot --all-databases' > /var/backup/bcksql_`date +%F`.sql 每天凌晨两点执行 搜寻backup目录下10天前的所有的.sql文件并删除 并且进入容器备份所有数据库以日期.sql结尾并将备份文件复制到宿主机的备份目录下MySQL还原备份
docker cp /var/backup/emp_2022-04-15.sql mysql:/var/backups/ 将备份文件拷贝到容器的备份目录中 docker exec -it mysql bin/bash 进入容器 mysql -uroot -p 进入mysql source /var/backups/emp_2022-04-15.sql 执行还原 或者容器外还原 mysql -uroot -proot < /var/backup/emp_2022-04-15.sql



