Mysql转储和恢复安全



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

i did following

$ 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 Database | grep -v mysql| grep -v information_schema| grep -v test | grep -v OLD |gawk '{print "drop Database " $1;select sleep(0.1);"}' | mysql -uroot - password

然后恢复你的备份

$ mysqldump -u root -proot

最新更新