实验环境:

  • MySQL 5.7.25
  • Redhat 6.10

前面都一些章节我们对mysqldump常用命令进行了讲解

这节对相关的命令进行整理总结

具体的内容还请查看前面的章节

1. 备份全库

这里使用了如下参数,详细请看前面章节的介绍 - --single-transaction

  • --set-gtid-purged=OFF

  • --master-data=2

  • --triggers

  • --events

  • --routines

1.1 备份所有数据库

mysqldump -h127.0.0.1 -usystem -p123456 --single-transaction --set-gtid-purged=OFF  --all-databases   --master-data=2 --triggers --events --routines --hex-blob  >/tmp/all.sql

或者

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF -A  --master-data=2  --triggers --events --routines --hex-blob >/tmp/all.sql

如果是在备库上执行备份,想获取主库的二进制日志位置,请使用--dump-slave参数 而不是--master-data

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF -A  --dump-slave --triggers --events --routines 
 --hex-blob >/tmp/all.sql

1.2 备份单独数据库

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF --databases test  --master-data=2  --triggers --events --routines --hex-blob >/tmp/test.sql

2. 备份单表

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction  --set-gtid-purged=OFF  --databases test --hex-blob  --tables innodb_table  isam_table  > /tmp/table.sql

3. 按条件备份表数据

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF  --databases test --hex-blob --tables innodb_table  isam_table --where='id=10'  > /tmp/table_id.sql

4. 强制刷新日志

mysqldump -h127.0.0.1 -usystem -p123456  -F  --single-transaction  --set-gtid-purged=OFF  --all-databases --hex-blob  --master-data=2  --triggers --events --routines> /tmp/all.sql

5. 只导出表结构

mysqldump -h127.0.0.1 -usystem -p123456  -d  --single-transaction  --set-gtid-purged=OFF  --all-databases  --master-data=2  --triggers --events --routines> /tmp/all.sql

6. 还原数据库

mysql -S /data/mysql/data/mysql.sock -usystem -p </tmp/dumpmaster.sql

mysql -S /data/mysql/data/mysql.sock -usystem -p db_name </tmp/dumpmaster.sql

7. 获取帮助信息

mysqldump --help

好了 关于mysqldump的相关内容就这么多了

下期专题再见