当前位置:   article > 正文

mysqldump的备份和恢复_mysqldump回复数据库时需要删掉原来的库吗

mysqldump回复数据库时需要删掉原来的库吗

1.mysqldump的简介

mysqldump工具是mysql数据库自带的、最基础的一款备份工具。它的备份过程首先是从buffer中找到需要备份的数据进行备份,如果buffer中没有,就去磁盘中数据文件查找并缓存到buffer里再进行备份。最后形成一个可编辑的备份文件。

2.mysqldump的参数简介

首先可以通过mysqldump -help  或者mysqldump --help命令查看该命令的使用说明。下面主要介绍几个生产过程中经常用得到的参数。

  1. --single-transaction
  2. 用于保证InnoDB备份数据时的一致性,配合RR隔离级别一起使用,当发起事务时,读取一个数据的快照,直到备份结束时,都不会读取到本事务开始之后提交的任何数据。
  3. --all-databases (-A)
  4. 备份所有的数据库。
  5. --master-data
  6. 该参数有12两个值,如果是1,就会在备份出来的文件中添加一个change master的语句(后期配置搭建主从架构);如果是2,就会在备份出来的文件中添加一个change master的语句,并且在语句前面添加注释符号(后期配置搭建主从架构)。
  7. --dump-slave
  8. 该参数用于在从数据库备份数据,在线搭建新的从库时使用,该参数也有12两个值。值是1,是在备份的文件中添加一个change master的语句;值是2时,则会在change master命令前加注释信息。
  9. --no-create-info (-t)
  10. 只备份表数据,不备份表结构
  11. --no-data (-d)
  12. 只备份表结构,不备份表数据
  13. --complete-insert (-c)
  14. 使用完整的insert语句会包含表中的列信息,这么做可以提高插入效率。
  15. --databases (-B)
  16. 备份多个数据库,比如,mysqldump -uroot -p123456 --databases db1 db2
  17. --default-character-set
  18. 字符集,mysql默认的字符集是utf8
  19. --quick (-q)
  20. 相当于加sql_no_query,意味着并不会读取缓存中的数据。
  21. --where=name (-w)
  22. 按条件备份数据

3.mysqldump备份数据案例

案例1:备份全库,命令如下

  1. 首先先在/usr/local/下面创建一个文件夹backup
  2. mkdir backup
  3. 其次执行下面的命令
  4. mysqldump --single-transaction -uroot -p -A > all_database_20181204.sql

 案例2:恢复全库,命令如下:

mysql -uroot -p12345678 < /usr/local/backup/all_database_20181204.sql

案例3:备份单个库的过程,命令如下,在这里我们备份mysql数据库

mysqldump --single-transaction -uroot -p mysql>/usr/local/backup/mysql_database_20181204.sql

案例4:恢复单库,命令如下

mysql -uroot -p12345678 mysql < /usr/local/backup/mysql_database_20181204.sql 

 如果mysql库存在,则直接恢复,如果已经删除drop掉,则需要在恢复前,先去数据库创建一个mysql库;命令如下:

create database mysql;

案例5:备份mysql数据库中的user表,命令如下:

mysqldump --single-transaction -uroot -p mysql user > /usr/local/backup/mysql_user_20181204.sql

案例6:恢复刚刚备份的表,命令如下:

mysql -uroot -p12345678 mysql < /usr/local/backup/mysql_user_20181204.sql

从上述命令可以看到,在恢复表的时候不需要写表的名字,只需要写上库的名字。

案例7:备份mysql库下表user的表结构,命令如下

mysqldump --single-transaction -uroot -p  mysql user  --no-data  > /usr/local/backup/mysql_user_nodata_20181204.sql

 案例8:备份mysql数据库下表user的表数据信息,命令如下

mysqldump --single-transaction -uroot -p  mysql user  --no-create-info  > /usr/local/backup/mysql_user_nodata_20181204.sql

案例9:按条件进行备份,只备份表user中user为root的数据行,命令如下:

mysqldump --single-transaction -uroot -p mysql user --where="user='root'" > /usr/local/backup/mysql_user_root_20181204.sql

 

 

 注意的是where后面一定加双引号,否则不会被识别。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/530308
推荐阅读
相关标签
  

闽ICP备14008679号