Docker环境下数据库的备份操作
咻兔哔 / 技术文章

MYSQL 备份

docker exec mysql sh -c 'exec mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" --databases DATABASE_1 DATABASE_2' > /data/backup_database/backup_database_`date +%F`.sql

MYSQL 备份并压缩

docker exec mysql sh -c 'exec mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" --databases DATABASE_1 DATABASE_2' |gzip > /data/backup_database/backup_database_`date +%F`.tar.gz

Mysql备份压缩,不影响业务运行,自动清理超过7天的备份


docker exec mysql sh -c 'exec mysqldump -u$"MYSQL_USERNAME" -p"$MYSQL_PASSWORD" --single-transaction --routines --triggers --flush-logs --databases DATABASE_1 DATABASE_2' |gzip > /data/backup_database/backup_database_`date +%F`.tar.gz && find /data/backup_database/ -name "*.gz" -mtime +7 -exec rm -f {} \;

在一个命令中导出和导入MySQL数据库

您可以使用以下单行代码,而不是从一个数据库创建转储文件,然后将备份导入另一个MySQL数据库:

  mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

从完整的 MySQL 转储还原单个 MySQL 数据库

如果使用–all-databases选项备份了所有数据库,并且要从包含多个数据库的备份文件中还原单个数据库,请使用如下所示的选项:–one-database

  mysql --one-database database_name < all_databases.sql

恢复数据库

docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章