为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL常用的备份工具之mysqldump

     mysqldump是MySQL中最常用的备份工具,在一些情况下,也是我们唯一可以选择的备份工具。mysqldump是在MySQL发行版中所提供的一种逻辑备份工具,支持对数据库进行全量备份和有条件的备份,其备份结果就是SQL转储文件。那么我们如何使用mysqldump呢?我们先来看一下mysqldump的语法

mysqldump的语法:

     mysqldump [OPTIONS] database [tables]

       OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]  

       OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

     使用mysqldump --help我们可以看到,mysqldump的常用语法有三种。

     mysqldump datebases [tables] 用于对指定数据库下的某一个或是某一些表进行备分

     mysqldump -databases [OPTIONS] DB1 [DB2 DB3...]  用于对指定的数据库进行备份

     mysqldump [OPTIONS] --all-databases [OPTIONS]   用于对所有数据库进行备份

而[OPTIONS]则是一些备份的参数,常用的一些参数及功能如下:

-u 备份用户

-p 备份用户的密码

--flush-logs 在备份开始前先执行flush logs 命令刷新二进制日志到磁盘,并生成一个新的二进制日志文件

--master-data 这个参数在我们上一章中已经多次提到了,其主要用途就是在备份文件 中记录备份时MySQL实例的二进制日志文件名和偏移量信息。这个参数有两个取值1和2,当为2时会在生成的change master命令前加上注释符。

--routines 在备份文件中包括存储过程和函数 

--triggers 在备份文件中包括触发器

--events  在备份文件中包括MySQL计划任务

--where 这个参数让我们可以按照一定条件来备份某一个表的数据

--single-transaction:这个参数主要用于INNODB存储引擎,该参数在事务隔离级别设置成Repeatable Read,并在dump之前发送start transaction 语句给服务端。这在使用innodb时很有用,因为在发出start transaction时,保证了在不阻塞任何应用下的一致性状态。对myisam和memory等非事务表,还是会改变状态的,当使用此参的时候要确保没有其他连接在使用ALTER TABLE、CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE等语句,否则会出现不正确的内容或则失败。--add-locks和此参互斥,

那么如果我们想使用mysqldump对MySQL数据库进行全备的话,我们要如何做呢?其实很简单,只要使用下面的命令就可以了

mysqldump -u xxx -p xxxx --single-transaction --triggers --routines --events -all-databases >> all.sql 

是不是很简单呢?

同样如果我们只想备份,某一个表中的符合条件的数据的话,则可以使用下面的方法

mysqldump -uroot -p --where "count>30 " dbname tbname > tb.sql

其中--where参数就是备份的条件,就和我们在SELECT语句中使用WHERE从句时一样。


点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
数据库工程师
手记
粉丝
1.5万
获赞与收藏
721

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消