MySQL之mysqldump的使用

1.备份指定库

mysqldump -uroot -p123456  test >/opt/mysql_bak.sql # 这种直接备份oldboy库下的所有表,不会有创建oldboy库的语句
mysqldump -uroot -p123456  -B test>/opt/mysql_bak.sql # 这种直接备份oldboy库下的所有表,会有创建oldboy库的语句,恢复的时候,不用指定库进行恢复
mysql -uroot  -p123456  test /opt/mysql_bak.sql.gz  #将备份内容进行压缩备份
mysqldump -uroot -p123456  -B oldboy oldboy2 >/opt/mysql_bak.sql   #同时备份多个库

{dir}_flag的区别

2.备份指定表

mysqldump -uroot -p123456  oldboy test|gzip >/opt/mysql_bak.sql.gz #备份oldboy库里的test表
mysqldump -uroot -p123456  oldboy test test2|gzip >/opt/mysql_bak.sql.gz #备份oldboy库里的test表和test2表

3.备份表结构和表内容

mysqldump -uroot -p123456  -d oldboy test |gzip >/opt/mysql_bak.sql.gz #备份oldboy库里的test表结构
mysqldump -uroot -p123456  -t oldboy test |gzip >/opt/mysql_bak.sql.gz #备份oldboy库里的test表数据,创表语句不会备份

4.完整备份

mysqldump -uroot -p123456  -A -B -F --events --master-data=1|gzip >/opt/mysql_bak.sql.gz #备份所有库 
-A是所有库  
-B指定备份哪个库,带有创建库的语句
-F是刷新binlog文件,创建新的binlog文件
--master-data=1记录备份是备份到哪个文件哪个位置
--master-data:mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1
当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。(就是记录导出的数据的binlog文件的位置)

mysqldump -uroot -p123456  --single-transaction -A -B -F --events --master-data=1|gzip >/opt/mysql_bak.sql.gz
--single-transaction 用于innodb引擎,保证mysqldump数据的时候,数据的一致性,一定加
--events     #==》转储事件,把events警告事件取消显示,就是把warning事件忽略
--flush-privileges  #==》刷新数据库更新
--triggers  触发器
--routines  存储过程

6.适合InnoDB引擎的备份语句

mysqldump -uroot -p'123456' --all-databases --flush-privileges --single-transaction \
--master-data=1 --flush-logs --triggers --routines --events \
--hex-blob > /opt/mysql_bak.sql

7.gtid模式下备份

1.备份所有库
/usr/local/mysql/bin/mysqldump -uroot -p123456 --single-transaction --master-data=2 --set-gtid-purged=OFF -A --flush-logs --triggers --routines --events --flush-privileges > /root/1.sql
#加了--set-gtid-purged=OFF时,会记录binlog日志,如果不加,不记录binlog日志,所以在我们做主从用了gtid时,用mysqldump备份时就要加--set-gtid-purged=OFF,否则你在主上导入恢复了数据,主没有了binlog日志,同步则不会被同步。

恢复语句如下

/usr/local/mysql/bin/mysql -uroot -p123456    /root/1.sql
恢复语句如下:
/usr/local/mysql/bin/mysql -uroot -p123456  mysql  /root/1.sql

/usr/local/mysql/bin/mysqldump -uroot -p123456 --single-transaction  --master-data=2 --set-gtid-purged=OFF --databases mysql > /root/1.sql

#--databases 作用跟 -B一样

恢复语句如下

/usr/local/mysql/bin/mysql -uroot -p123456    /root/1.sql

恢复语句如下,需要指定库

/usr/local/mysql/bin/mysql -uroot -p123456   mysql 

你可能感兴趣的:(MySQL之mysqldump的使用)