--print-defaults
|
-
|
-
|
用于打印默认参数
|
--no-defaults
|
-
|
-
|
禁止从默认配置文件中读取默认参数,
mysqldump
默认会从
/etc/my.cnf
、
/etc/mysql/my.cnf
和
~/.my.cnf
默认配置文件中
读取
mysqldump
、
mariadb-dump
、
client、
client-server
和
client-mariadb
等客户端配置。
|
--defaults-file
|
-
|
-
|
指定
mysqldump
默认配置文件,
mysqldump
将仅从该文件读取默认配置。
|
--defaults-extra-file
|
-
|
-
|
指定
mysqldump
额外的配置文件,
mysqldump
将除了从默认配置文件读取配置外,
还将从该文件读取。
|
--defaults-group-suffix
|
-
|
-
|
除默认组外,额外读取的组名,多个用逗号分隔。
|
--all-databases
|
-A
|
False
|
备份所有库
|
--all-tablespaces
|
-Y
|
False
|
备份所有表空间
|
--no-tablespaces
|
-y
|
False
|
不备份任何表空间
|
--add-drop-database
|
|
False
|
在
CREATE DATABASE
前添加
DROP DATABASE
|
--add-drop-table
|
|
True
|
在
CREATE TABLE
前添加
DROP TABLE
|
--skip-add-drop-table
|
|
-
|
禁用**
--add-drop-table
**
|
--add-drop-trigger
|
|
False
|
在
CREATE TRIGGER
前添加
DROP TRIGGER
|
--add-locks
|
|
True
|
在
INSERT
语句前添加
LOCK TABLES
,语句后添加
UNLOCK TABLES;
|
--skip-add-locks
|
|
-
|
禁用**
--add-locks
**
|
--allow-keywords
|
|
False
|
允许创建包含关键字的列名
|
--apply-slave-statements
|
|
False
|
在
CHANGE MASTER
前添加
STOP SLAVE
,备份文件末尾添加
START SLAVE
|
--character-sets-dir
|
|
-
|
字符集文件目录,用
--character-sets-dir=name
指定
|
--comments*
|
-i
|
True
|
添加注释信息
|
--skip-comments
|
|
-
|
禁用**
--comments*
**
|
--compatible
|
|
-
|
与其他数据库或不同
mysql
版本匹配,需要
4.1.0
以上版本;
可以设置的值有
ansi
,
mysql323
,
mysql40
,
postgresql
,
oracle
,
mssql
,
db2
,
maxdb
,
no_key_options
,
no_table_options
,
no_field_options
;
用
--compatible=name
指定,多个用逗号分隔
|
--compact
|
|
False
|
禁用注释和前后的
dump
文件信息,提供较少输出,适用于调试;
默认启用以下选项:
--skip-add-drop-table
、
--skip-add-locks
、
--skip-comments
、
--skip-disable-keys
、
--skip-set-charset
|
--complete-insert
|
-c
|
False
|
使用带有完整列名的
INSERT
语句,默认不带列名
|
--compress
|
-C
|
False
|
在服务端和客户端的协议中使用压缩
|
--create-options
|
-a
|
True
|
包含所有MySQL的特定创建选项
|
--skip-create-options
|
|
-
|
禁用**
--create-options
**
|
--databases
|
-B
|
False
|
备份多个数据库,如果没有使用
--tables
选项,
后边的值都将被认为是数据库名,多个用逗号分隔;
将会在输出文件中添加
'USE db_name'
|
--debug
|
-#
|
|
非调试版本
|
--debug-check
|
|
False
|
在退出时检查内存和打开文件的使用情况
|
--debug-info
|
|
False
|
在退出时打印一些调试信息,包括用户占用
CPU
事件,
系统占用
CPU
事件,上下文切换等系统信息。
|
--default-character-set
|
|
utf8
|
设置默认字符集,
--default-character-set=utf8
|
--delayed-insert
|
|
False
|
使用
INSERT DELAYED
而表示
INSERT
插入数据,
INSERT DELAYED
在空闲时候插入数据,当有如
SELECT
等其他操作时候,
先处理其他操作,新版本已经不支持了。
|
--delete-master-logs
|
|
False
|
备份后从
master
删除日志,该选项会自动启用
--masert-data
选项
|
--disable-keys
|
-K
|
True
|
INSERT
语句前添加
'/*!40000 ALTER TABLE tb_name DISABLE KEYS */;
禁用索引,
INSERT
语句后添加
'/*!40000 ALTER TABLE tb_name ENABLE KEYS */;
启用索引;
因为一次创建索引比逐行创建效率更高,这样可以提高数据恢复效率。
|
--skip-disable-keys
|
|
|
禁用**
--disable-keys
**
|
--dump-slave
|
|
0
|
会将二进制文件位置和主文件名附加到备份文件中,
默认为
0
,
如果为
1
,将会以
CHANGE MASTER
语句方式输出到备份文件;
如果为
2
,
CHANGE MASTER
语句将会以注释形式输出到备份文件;
除非指定了
--single-transaction
,否则
将自动开启全局锁
--lock-all-tables
;
该选项会自动关闭
--lock-tables
|
--events
|
-E
|
False
|
备份事件
|
--extended-insert
|
-e
|
True
|
使用包含多个值列表的多行插入语法。
|
--skip-extended-insert
|
|
-
|
禁用**
--extended-insert
**
|
--fields-terminated-by
|
|
-
|
结合**
-T,--tab=path
**选项使用,
tb_name.txt
文件中的字段以指定字符串结尾,默认是
TAB
--fields-terminated-by=name
|
--fields-enclosed-by
|
|
-
|
结合**
-T,--tab=path
**选项使用,
tb_name.txt
文件中的字段以指定字符串括起来,默认无
--fields-enclosed-by=name
|
--fields-optionally-enclosed-by
|
|
-
|
结合**
-T,--tab=path
**选项使用,
tb_name.txt
文件中的字段以指定字符串括起来,默认无
--fields-optionally-enclosed-by=name
|
--fields-escaped-by
|
|
-
|
结合**
-T,--tab=path
**选项使用,
tb_name.txt
文件中的字段以指定字符串转义,默认
\
,
效果就是将
\
替换成指定字符,
--fields-escaped-by=name
|
--flush-logs
|
-F
|
False
|
备份前生成新的服务器备份库的二进制日志文件,
备份多个库则每个库都会生成一个,
需要
RELOAD
权限,
如果只想生成一次,则应搭配
--lock-all-tables
或
--master-data
使用
|
--flush-privileges
|
|
False
|
在备份后执行
FLUSH PRIVILEGES
,
在备份包含
MySQL
数据库或任何依赖
MySQL
中的数据库的数据库时需要使用
|
--force
|
-f
|
False
|
忽略错误
|
--gtid
|
|
-
|
与
--master-data=1
或
dump-slave=1
搭配使用,
当启用时,输出内容中将设置
GTID
位置替代
binlog
文件和偏移量,
binlog
文件和偏移量将仅作为注释显示;
当禁用时,与之相反,
GTID
将仅作为注释显示
|
--help
|
-?
|
-
|
显示
mysqldump
工具帮助信息
|
--hex-blob
|
|
False
|
将
BINARY, VARBINARY, BLOB
格式的二进制字符串备份成十六进制
|
--host
|
-h
|
-
|
指定连接主机,
--host=name
|
--ignore-database
|
|
-
|
忽略备份的库,忽略多个库需要多次使用该指令;
与
--all-database
或
-A
搭配使用
--ignore-database=db_name
|
--ignore-table-data
|
|
-
|
忽略备份的表的数据,忽略多个表的数据需要多次使用该指令;
必须同时指定数据库和表名;
--ignore-table-data=db_name.tb_name
|
--ignore-table
|
|
-
|
忽略备份的表,忽略多个表需要多次使用该指令;
必须同时指定数据库和表名;
--ignore-table=db_name.tb_name
|
--include-master-host-port
|
|
False
|
在使用
--dump-slave
时候,
在
CHANGE MASTER TO
语句中添加
MASTER_HOST=host
和
MASTER_PORT=port
|
--insert-ignore
|
|
False
|
使用
INSERT IGNORE
替代
INSERT
,有重复数据时候忽略报错
|
--lines-terminated-by
|
|
-
|
结合**
-T,--tab=path
**选项使用,
tb_name.txt
文件以指定字符串结尾,默认无,
--lines-terminated-by=name
|
--lock-all-tables
|
-x
|
False
|
在备份期间通过获取全局读取锁来锁定所有库和所有表,
将会自动关闭
--single-transaction
和
--lock-tables
|
--lock-tables
|
-l
|
True
|
对需要备份的库的所有表加读锁,
事务型表使用
--single-transaction
而非**
--lock-tables
**
|
--skip-lock-tables
|
|
-
|
关闭**
--lock-tables
**
|
--log-error
|
|
-
|
指定文件中添加告警和错误日志,
--log-error=file
|
--log-queries
|
|
True
|
到数据恢复时,如果日志记录是打开的,把查询记录到常规和慢查询日志中
|
--skip-log-queries
|
|
-
|
禁用**
--log-queries
**
|
--master-data
|
|
0
|
将日志文件名和位置附加到备份文件中,默认值为
0
如果值为
1
,将会以
CHANGE MASTER
命令的形式附加,
如果值为2,
CHANGE MASTER
命令将会以注释形式附加,
除非指定了
--single-transaction
,
否则将自动开启全局读锁选项
--lock-all-tables
,
该选项会自动关闭
--lock-tables
,
--master-data=0
|
--max-allowed-packet
|
|
25165824
|
与服务器通信的最大数据包长度,应该大于单行数据大小,
小于mysql服务端设置的该变量大小,默认
24M
|
--net-buffer-length
|
|
1046528
|
TCP/IP和Socket通信的缓冲区大小
|
--no-autocommit
|
|
False
|
在
INSERT
语句前添加
set autocommit=0;
,
在
INSERT
语句及
UNLOCK TABLES
后添加
commit;
,
autocommit=0
表示当前连接的操作都会被当成一个事务,
直到调用
commit
提交或
ROLLBACK
可以回滚;
autocommit=1
每条语句会被当成单独的事务,自动
commit
|
--no-create-db
|
-n
|
False
|
与
--all-databases
或
--databases
搭配使用,
取消创建数据库
CREATE DATABASE...IF NOT EXISTS
语句
|
--no-create-info
|
-t
|
False
|
取消创建数据表相关语句,
包括
DROP TABLE IF EXISTS...
和
CREATE TABLE...
语句
|
--no-data
|
-d
|
False
|
仅备份数据结构,不备份数据
|
--no-set-names
|
-N
|
-
|
等同于
--skip-set-charset
|
--opt
|
|
-
|
等同于
--add-drop-table --add-locks --create-options --quick
--extended-insert --lock-tables --set-charset --disable-keys
|
--skip-opt
|
|
-
|
禁用**
--opt
**,
禁用
--add-drop-table --add-locks --create-options --quick
--extended-insert --lock-tables --set-charset --disable-keys
|
--order-by-primary
|
|
False
|
如果备份表存在主键和唯一键,将会以主键和唯一键排序,
对于需要将MyISAM数据导入INNODB表时非常有用,
但会增加数据备份时长
|
--password
|
-p
|
-
|
用户账号的密码,如果没有给出密码则会提示输入密码,
--password=name
|
--port
|
-P
|
0
|
MySQL
服务连接端口,
--port=3306
|
--protocol
|
|
-
|
连接协议,可选的有
tcp、socket、pipe、memory
,
--protocol=name
|
--quick
|
-q
|
True
|
不缓冲查询,直接将结果转向标准输出
|
--skip-quick
|
|
-
|
禁用**
--quick
**
|
--quote-names
|
-Q
|
True
|
表名、列名、字段等加反引号括起来
|
--skip-quote-names
|
|
-
|
禁用**
--quote-names
**
|
--replace
|
|
False
|
使用
REPLACE INTO
语句替代
INSERT INTO
语句,
REPLACE INTO
会先根据主键或唯一索引判断是否有重复数据,
如果有则替换旧数据,没有则直接插入新数据,
没有主键或唯一索引的表可能导致重复数据
|
--result-file=name
|
-r
|
-
|
结果输出到指定文件中,
用在使用回车换行符
\r\n
分隔文本的系统中,如
Windows
、
DOS
,
--result-file=name
|
--routines
|
-R
|
False
|
备份函数和存储过程
|
--set-charset
|
|
True
|
再备份文件中添加字符集相关信息,
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
|
--skip-set-charset
|
|
-
|
禁用**
--set-charset
**
|
--single-transaction
|
|
False
|
通过在一个事务中备份所有表来创建一致性快照,
设置事务隔离级别为可重复读,即
Repeatable Read
,
并向服务端发送
START TRANSACTION
,在这期间不会锁表
其他连接对数据的修改对事务内相同的查询结果没有影响,
仅对支持事务隔离的引擎有效,当前只支持INNODB,
为保障备份有效性,其他连接不可以使用
ALTER TABLE
、
DROP TABLE
、
TRUNCATE TABLE
、
RENAME TABLE
语句,
因为事务快照不会与它们隔离,
该选项会自动关闭选项
--lock-tables
|
--dump-date
|
|
True
|
在备份文件末尾添加备份完成日期和时间,
如
-- Dump completed on 2021-03-02 3:56:16
|
--skip-dump-date
|
|
-
|
禁用**
--dump-date
**,
备份文件结尾为
-- Dump completed
,不再显示日期和时间
|
--socket=name
|
-S
|
-
|
Socket
连接文件地址,
--socket=name
|
--ssl
|
|
False
|
连接启用
SSL
(使用其他标志自动启用)
|
--ssl-ca
|
|
-
|
指定
PEM
格式的
CA
文件名称,自动启用
--ssl
,
--ssl-ca=name
|
--ssl-capath
|
|
-
|
指定
CA
文件目录,自动启用
--ssl
,
--ssl-capath=name
|
--ssl-cert
|
|
-
|
指定
PEM
格式的
X509
证书文件名称,自动启用
--ssl
,
--ssl-cert=name
|
--ssl-cipher
|
|
-
|
用于
SSL
加密的密码,自动启用
--ssl
,
--ssl-cipher=name
|
--ssl-key
|
|
-
|
指定
PEM
格式的
X509
密钥文件名称,自动启用
--ssl
,
--ssl-key=name
|
--ssl-verify-server-cert
|
|
False
|
用主机名验证证书中的
Common Name
字段
|
--tab
|
-T
|
-
|
在指定目录创建
TAB
分隔的
tb_name.txt
文件和数据备份文件
tb_name.sql
,
仅当
mysqldump
与服务器在一台服务器时使用,
目录需要设置
chown mysql.mysql tab_path
,
--tab=name
|
--tables
|
|
-
|
覆盖选项
--databases
,指定单个数据库的多张表
|
--triggers
|
|
True
|
备份表关联的触发器
|
--skip-triggers
|
|
-
|
禁用**
--triggers
**
|
--tz-utc
|
|
True
|
在备份文件开头添加
SET TIME_ZONE='+00:00'
,
允许备份的数据库中有不同时区的
TIMESTAMP
类型数据,
或要将这一类数据迁移到不同时区时
|
--skip-tz-utc
|
|
-
|
禁用**
--tz-utc
**
|
--user
|
-u
|
-
|
用于连接的用户账号,
--user=name
|
--verbose
|
-v
|
False
|
显示备份过程中各阶段信息
|
--version
|
-V
|
-
|
打印版本号
|
--where=name
|
-w
|
-
|
仅备份选定的数据记录,在查询语句后边添加
WHERE
条件语句
--where=name
|
--xml
|
-X
|
-
|
备份文件以
xml
格式导出
|
--plugin-dir
|
|
-
|
客户端插件目录,
--plugin-dir=name
|
--default-auth
|
|
-
|
客户端验证插件名称,
--default-auth=name
|