mysql数据库备份详解2(mysqldump使用技巧)

前言


如标题所示,这一篇介绍的是mysqldump常用的使用技巧,由于mysqldump命令有很多的参数并不常用,这里就不总结了(如有需要添加的,会及时更新)


使用技巧总结


导出的sql文件,可以是任意名字,但是一般要使它在名称上可以区分出来

导出数据使用的用户名和其密码必须正确,且有操作该导出的数据库的权限
(一般使用root及其密码)

基础参数:
-u 连接数据库的用户
-p 连接数据库密码
-P连接数据库端口号



【1】导出全部数据库

mysqldump  -u用户 -p密码  --events --ignore-table=mysql.events  --all-databases  > all.sql

mysqldump默认是不备份事件表的,只有加了–events 才会备份,否则会报错:
Skipping the data of table mysql.event. Specify the --events option explicitly.



【2】只导出数据库表结构不导出任何数据

mysqldump -u用户 -p密码   --all-databases --no-data > all.sql


【3】导出整个数据库及其数据

mysqldump -u用户 -p密码  数据库名称  >  dbname.sql    


【4】只导出数据库结构不含数据

mysqldump -u用户  -p密码  -d 数据库名 > dbname.sql 


【5】导出数据库中的某数据表及其数据

mysqldump -u用户 -p密码  数据库名  数据表名 >  tablename.sql 


【6】只导出数据库中的某数据表的表结构不含数据

mysqldump -u用户 -p密码  -d 数据库名  数据表名 > tablename.sql   


【7】导出某个数据库的多个数据表

mysqldump -u用户 -p密码   数据库名1  数据表名1  数据表名2 > tablename.sql 


【8】导出多个数据库及其数据(导出哪些数据库,添加哪个数据库名)

mysqldump -u用户 -p密码 --databases 数据库名1 数据库名2  > dbname.sql


【9】导出全部数据库时,不导出某个数据库中指定的数据表

指定忽略多个表时,需要重复多次;每个表必须同时指定数据库和表名

mysqldump -u用户 -p密码 --all-databases --ignore-table=数据库名.表名 > notablename.sql   


【10】备份压缩

mysqldump -u用户 -p密码  --all-databases   | gzip  >   all.sql.gz

【11】在线不锁表,热备份

mysqldump  -u用户 -p密码 --events --ignore-table=mysql.events --all-databases  --skip-lock-tables  --single-transaction --master-data=2 --flush-logs  >  all.sql

补充:

  • –skip-lock-tables ,不锁表

  • –single-transaction,适用于InnoDB表,会将导出操作封装在一个事务内,使得导出的数据是一个一致性快照。

  • 为确保得到有效的备份文件,使用该参数备份期间应避免使用DDL(ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE.)语句

  • – lock-all-tables导出时锁定所有表,可保证导出数据与数据库的一致性。但是,在线上数据库备份时,很少使用。

  • –master-data=2表示在dump过程中记录主库的binlog和pos点,并在dump文件中注释掉这一行

  • –master-data=1表示在dump过程中记录主库的binlog和pos点,并在dump文件中不注释掉这一行,恢复时会执行

  • 当master_data和 single_transaction 同时使用时,会先加全局读锁,然后设置事务一致性和使用一致性快照开始事务,然后马上就取消锁,然后执行导出



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漠效

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值