繁体   English   中英

Mysql转储和安全恢复

[英]Mysql dump and restore securely

我想做mysqldump来备份我的所有数据库。 假设我的mysql数据库中发生任何崩溃,那么我将恢复该备份文件。 当尝试恢复旧备份时。 在进行备份之后,新创建的表仍存在于数据库中。 是否有任何选项只能恢复旧数据,并删除所有其他新添加的东西?

我做了以下

$ mysqldump -u root -proot  --all-databases > alldb_backup.sql

恢复

$ mysqldump -u root -proot < alldb_backup.sql

您应该添加--add-drop-database选项。 这将删除现有数据库,以便在导入备份时启动空数据库。

对所有数据库进行MySQL备份:

mysqldump --user=root --add-drop-database --complete-insert --extended-insert \
          --verbose --all-databases > alldb_backup.sql

仅备份单个数据库(更易于单独处理):

mysqldump --user=root --add-drop-database --complete-insert \
          --extended-insert --verbose mysingledb > mysingledb.sql

要恢复所有数据库,那么:

mysql --user=root -p < alldb_backup.sql

或者还原单个数据库:

mysql --user=root -p mysingledb < mysingledb.sql

一个简单的方法,但也许不是最好的解决方案是删除除mysql,information_schema,test和OLD db之外的所有数据库

mysql -uroot -p -e“show databases”| grep -v数据库| grep -v mysql | grep -v information_schema | grep -v test | grep -v OLD | gawk'{print“drop database”$ 1“;选择sleep(0.1);”}'| mysql -uroot -ppassword

然后恢复备份

$ mysqldump -u root -proot <alldb_backup.sql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM