Amygo
作者Amygo·2019-06-26 15:54
DBA·分布式事务数据库

【小白福利—初级DBA入门必看】MySQL常用工具介绍(七)——客户端工具MySQL_dump

字数 2935阅读 1250评论 0赞 2

从开始更新MySQL常用工具这篇文章到现在已经进入第七节了(点击查看系列文章),相信大家对MySQL常用工具已经有一个清楚的了解了,感谢大家的持续观看,Amy会继续为大家带好有深度的好文章哦~

1 . 简介

mysqldump执行逻辑备份,生成sql语句集。用该语句集可以重建原数据库的对象定义和表数据。也可以生成csv或其它分隔符文本、xml格式。
mysqldump至少要select权限以导出表,show view以导出视图,trigger以导出triggers,如果不使用–single-transaction选项还需lock tables权限。
导入mysqldump输出,需执行语句的相关权限,如create table,insert等。mysqldump输出可以包含alter database语句,则导入该输出则需要alter权限。
一般调用方式:
shell> mysqldump [options] db_name [tbl_name …] #表级备份,即便省略tbl_name来进行库内所有表的备份,依旧不会有create database语句。
shell> mysqldump [options] --databases db_name … #数据库级备份
shell> mysqldump [options] --all-databases #数据库级备份,不备份性能库、信息库、sys
选项读取[mysqldump]和[client]组。

2 . 选项介绍与部分选项举例说明

注意:这里的默认值,不是使用“程序名 --no-defaults --help”打印的输出,而是指未指定时内部初始值,该值可被自身选项显示指定,也可能会受其他互斥选项、相关选项更改。这里只写出默认启用的布尔型选项,以及有内部值的其他选项。有内部值的选项可以不显示给出。
2.1 所有客户端共有选项

2.1.1 影响选项文件读取的选项

n8yxg1voizp

n8yxg1voizp

2.1.2 帮助与版本

vr3bihgpsyn

vr3bihgpsyn

2.1.3 连接的建立

szitofkl34q

szitofkl34q

7dq55rcolz4

7dq55rcolz4

连接方式参数说明:优先级–protocol>–pipe>-h;
linux两种连接方式:若未指定–host和-h,或指定为localhost,或指定为空(–host=或–host=’’),则使用unix套接字;否则使用tcp/ip。
windows三种连接方式:若未指定–host和-h,或指定为localhost,且服务端开启了共享内存,则使用共享内存;若指定为.,或tcp禁用且socket未指定或主机指定为空(–host=),则使用命名管道;否则tcp。
连接方式举例
全平台使用tcp/ip:
mysql --protocol=tcp [-h127.0.0.1] [–port=3306]
mysql -h127.0.0.1 [–port=3306]

unix使用socket:
mysql [–host=localhost] [–socket=/tmp/mysql.sock]

windows使用命名管道:需在服务端开启命名管道支持
mysql --protocol=pipe
mysql --pipe
mysql --host=.

windows使用共享内存:未知,存在问题。理论上应当在服务上开启共享内存后使用
mysql [–host=localhost] --shared-memory-base-name=MYSQL,但是实际上使用的tcp,或者
mysql --protocol=memory --shared-memory-base-name=MYSQL,但是会报错ERROR 2046 (HY000): Can’t open shared memory; cannot send request event to server (5);

2.1.4 字符集

c6cz8y248df

c6cz8y248df

2.1.5 调试日志

w9uypzhcckf

w9uypzhcckf

2.2 mysqldump特定选项

0d7043jeuko6

0d7043jeuko6

c0z5f95d54v

c0z5f95d54v

6y74esvay1b

6y74esvay1b

njveih5syym

njveih5syym

1fb3gy89dpg

1fb3gy89dpg

3 . 限制

mysqldump默认不导出INFORMATION_SCHEMA,performance_schema, sys。要导出时需用–databases指定。对于性能表和信息表,还需使用–skip-lock-tables。
mysqldump不导出ndb集群信息库ndbinfo。
mysqldump不导出innodb的CREATE TABLESPACE 语句。
不推荐将mysqldump的输出重载到5.6.9及之前开启gtid的版本。
mysqldump导出mysql时包含general_log和slow_query_log表结构,但不导出数据。
若遇到关于视图的权限问题,参考Section C.5, “Restrictions on Views”。

4 . 常见用法举例

省略连接选项,用户可自定义tab、xml输出格式
可以开启–single-transaction保证事务表的一致性,对于导出期间非事务性表没有更改的情况,还能保证整体的一致性。

4.1 全库备份(不备份信息、性能、sys库):
mysqldump --all-databases > filename #表级读锁,不保证库间一致性
mysqldump --all-databases --lock-all-tables [-no-data]> filename #全局读锁,保证库间一致性.–no-data可以只导出结构。
mysqldump --all-databases --master-data > filename #全局读锁,保证库间一致性
mysqldump --all-databases --master-data --single-transaction > filename #热备,在一个事务内导出数据,保证innodb数据库一致性

4.2 库级备份:
mysqldump --databases sakila > filename #表级读锁,保证库内一致性,导出触发器、视图,不包括routines、events
mysqldump --databases sakila --routines --events > filename #表级读锁,保证库内一致性,导出触发器、视图,包括routines、events
mysqldump --databases sakila mysql > filename #表级读锁,保证库内一致性,导出触发器、视图,因为导出mysql库,则自然包括routines、events

4.3 表级备份:
mysqldump sakila > filename #表级读锁,保证库内一致性,导出触发器
mysqldump sakila city actor > filename #表级读锁,保证库内一致性,导出触发器.

以上就是今天更新的内容,欢迎大家踊跃转发点赞哦~


作者:Amy—go

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广