--set-gtid-purged=value
指定是否在dump文件中写入SET @@GLOBAL.gtid_purged语句,同时会导致dump文件在被重载的时候不会记录binlog。
value取值如下:
OFF:不添加SET @@GLOBAL.gtid_purged语句,同时不添加SET @@SESSION.SQL_LOG_BIN=0语句;
ON:添加SET @@GLOBAL.gtid_purged语句,如果没开启GTID则报错,同时添加SET @@SESSION.SQL_LOG_BIN=0语句;
AUTO:如果开启GITD则添加SET @@GLOBAL.gtid_purged语句,同时添加SET @@SESSION.SQL_LOG_BIN=0语句,默认选项。
格式化选项(Format Options)--compact
更加紧凑的输出dump文件。该选项同时会开启 --skip-add-drop-table,--skip-add-locks,--skip-comments,--skip-disable-keys和 --skip-set-charset选项。
--complete-insert, -c
指定dump文件中的INSERT语句为包含所有字段名称的完整语句。
--create-options
指定dump文件中CREATE TABLE语句包含所有MySQL表选项。
--hex-blob
转储二进制列为十六进制格式。涉及的类型有BINARY、VARBINARY、BLOB和BIT。
--quote-names, -Q
指定dump文件中数据库、表和字段的引用标识符为反引号 `,默认开启,通过选项 --skip-quote-names来禁用。如果SQL_MODE当中有ANSI_QUOTES,则标识符为双引号 "。
--result-file=file_name, -r file_name
指定dump输出到给定文件。
--tz-utc
指定dump文件中表TIMESTAMP字段导出格式以适应不同时区服务器导入时值的准确性。默认是开启,使用选项 --skip-tz-utc禁用。
--all-databases, -A
指定dump出所有库当中的所有表。
--databases, -B
指定dump一个或多个数据库。该选项会在dump每个数据库之前添加CREATE DATABASE和USE语句,如果没有指定该选项,则mysqldump将第一个参数当成是数据库,第二个参数当成是表。通常用来备份INFORMATION_SCHEMA和performance_schema库,默认情况下是不导出这两个库的。
--no-data, -d
指定只dump表结构,而不dump表数据。
--tables
指定dump一张或多张表。会覆盖选项 --databases, -B,把该选项之后所有参数当成是表。
--ignore-table=db_name.tbl_name
指定忽略dump某张表。格式必须是db.table,如果有多张表需要多次指定该选项,也适用于视图。
--where='where_condition', -w 'where_condition'
指定where条件dump数据。
--events, -E
指定dump数据库中的计划事件。需要对库有EVENT权限。
--routines, -R
指定dump数据库中的函数和存储过程。
--triggers
指定dump表中的触发器。需要对表有TRIGGER权限。
--disable-keys, -K
指定dump文件里INSERT表时添加/*!40000 ALTER TABLE tbl_name DISABLE KEYS */语句,完成后再添加/*!40000 ALTER TABLE tbl_name ENABLE KEYS */语句,这样可以加快表数据导入速度,但只对有非唯一索引的MyISAM表有效果。
--extended-insert, -e
指定dump文件当中的INSERT语句为多行格式,降低dump文件大小。
--insert-ignore
使用INSERT IGNORE代替INSERT语句。
--opt
默认开启,包含了一系列选项的集合,主要有 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset,如果要禁用,可以使用选项 --skip-opt。
--quick, -q
对于大表的dump很有帮助。默认开启。该选项使mysqldump直接从表中获取数据输出而不经过MySQL的缓存。
--add-locks
指定dump文件中每张表INSERT语句之前添加LOCK TABLES语句,INSERT语句之后添加UNLOCK TABLES语句。这样可以提高导入效率。
--flush-logs, -F
在dump开始之前切换日志。该选项需要RELOAD权限。如果与选项 --all-databases联合使用的话会导致每dump一个库之前都要进行日志切换。如果有使用选项 --lock-all-tables、--master-data或者 --single-transaction,则在dump过程当中只进行一次日志切换。如果希望dump与日志的切换同时发生,则使用 --flush-logs与选项 --lock-all-tables、--master-data或者 --single-transaction一同使用。
--flush-privileges
在dump完mysql数据库之后添加FLUSH PRIVILEGES语句。