首页 > 数据库 > 正文

mysql怎样利用对所有数据库进行备份的备份文件只恢复某一个数据库
2017-08-17 20:13:13   来源:   评论:0 点击:

一:实验介绍我们一般会在备份的时候指定--all-databases来备份所有数据库,利用该备份文件还原的时候默认会还原所有数据库(即使你指定了某一个数据库,如MySQL-uroot-p数据库名称

一:实验介绍

我们一般会在备份的时候指定--all-databases来备份所有数据库,利用该备份文件还原的时候默认会还原所有数据库(即使你指定了某一个数据库,如MySQL -u root -p 数据库名称 备份文件)。那么,怎样利用对所有数据库进行备份的备份文件只恢复某一个数据库呢?这时需要用到--one-database选项。

二:实验步骤

 

1:现有数据

 

[sql] view plain copy
 
  1. mysql> use dan;  
  2. Reading table information for completion of table and column names  
  3. You can turn off this feature to get a quicker startup with -A  
  4.    
  5. Database changed  
  6. mysql> select * from t;  
  7. +------+  
  8. | id   |  
  9. +------+  
  10. |    3 |  
  11. |    2 |  
  12. |    4 |  
  13. |    5 |  
  14. +------+  
  15. rows in set (0.00 sec)  
  16. mysql> use song;  
  17. Reading table information for completion of table and column names  
  18. You can turn off this feature to get a quicker startup with -A  
  19.    
  20. Database changed  
  21. mysql> select * from t;  
  22. +------+  
  23. | id   |  
  24. +------+  
  25. |    6 |  
  26. +------+  
  27. 1 row in set (0.00 sec)  
  28.    
  29. --dan数据库的t表有2,3,4,5四条数据,song数据库的t表仅有一条数据6.  

 

2:备份

[root@target_pc databasefile]# mysqldump -u root -p --all-databases > /backup/databasefile/201503311428.sql

3:准备测试数据

 

[sql] view plain copy
 
  1. --删除song数据库的数据  
  2. mysql> delete from t ;  
  3. Query OK, 1 row affected (0.00 sec)  
  4.    
  5. mysql> select * from t;  
  6. Empty set (0.00 sec)  
  7.    
  8. --往dan数据库添加数据  
  9. mysql> use dan;  
  10. Reading table information for completion of table and column names  
  11. You can turn off this feature to get a quicker startup with -A  
  12.    
  13. Database changed  
  14. mysql> insert into t(id) values(6),(7);  
  15. Query OK, 2 rows affected (0.00 sec)  
  16. Records: 2  Duplicates: 0  Warnings: 0  
  17.    
  18. mysql> select * from t;  
  19. +------+  
  20. | id   |  
  21. +------+  
  22. |    3 |  
  23. |    2 |  
  24. |    4 |  
  25. |    5 |  
  26. |    6 |  
  27. |    7 |  
  28. +------+  
  29. rows in set (0.00 sec)  
  30.    

 

4:备份

--在恢复前先对现有数据库做个全备,以保证出现问题的时候,可以恢复到故障点。

[root@target_pc databasefile]# mysqldump -u root -p --all-databases > /backup/databasefile/201503311455.sql

Enter password: 

5:恢复

[root@target_pc databasefile]# mysql -u root -p song --one-database< /backup/databasefile/201503311428.sql 

Enter password: 

 

6:验证

 

[sql] view plain copy
 
  1. mysql> use dan;  
  2. Reading table information for completion of table and column names  
  3. You can turn off this feature to get a quicker startup with -A  
  4.    
  5. Database changed  
  6.    
  7. mysqlselect * from t;  
  8. +------+  
  9. | id   |  
  10. +------+  
  11. |    3 |  
  12. |    2 |  
  13. |    4 |  
  14. |    5 |  
  15. |    6 |  
  16. |    7 |  
  17. +------+  
  18. rows in set (0.00 sec)  
  19.    
  20. mysql> use song;  
  21. Reading table information for completion of table and column names  
  22. You can turn off this feature to get a quicker startup with -A  
  23.    
  24. Database changed  
  25. mysql> select * from t;  
  26. +------+  
  27. | id   |  
  28. +------+  
  29. |    6 |  
  30. +------+  
  31. 1 row in set (0.00 sec)  

--可以看到dan数据库的数据保留了6,7,说明 dan这个数据库没有被恢复,只恢复了song这个数据库。

 

7:总结

当要从对所有数据库进行备份的备份文件中只恢复某一个数据库时,需要加上--one-database选项及要恢复的数据库名称。

相关热词搜索:备份 数据库 文件

上一篇:You probably tried to upload too large file.
下一篇:最后一页

分享到: 收藏
评论排行