的mysqlpump客户端实用程序执行逻辑备份,生成一组可执行的SQL语句,以再现原始数据库对象定义和表数据。它转储一个或多个MySQL数据库进行备份或传输到另一个SQL服务器。
考虑使用MySQL Shell转储实用程序,它提供多线程并行转储、文件压缩和进度信息显示,以及云特性,如Oracle云基础设施对象存储流和MySQL数据库服务兼容性检查和修改。转储可以很容易地导入到MySQL服务器实例或MySQL数据库服务DB系统使用MySQL Shell负载转储实用程序.可以找到MySQL Shell的安装说明在这里.
mysqlpump功能包括:
mysqlpump使用MySQL 5.7中引入的MySQL特性,因此假设与MySQL 5.7或更高版本一起使用。
mysqlpump至少需要选择
转储表的特权,显示视图
对于倾销的观点,触发
对于转储触发器,和锁表
如果——单独的事务
选项未被使用。的选择
上的特权mysql
需要系统数据库来转储用户定义。某些选项可能需要选项描述中提到的其他特权。
要重新加载转储文件,您必须具有执行其中包含的语句所需的特权,例如适当的创建
由这些语句创建的对象的特权。
在Windows上使用带有输出重定向的PowerShell生成的转储文件将创建一个具有UTF-16编码的文件:
Mysqlpump [options] > dump.sql
但是,UTF-16不允许作为连接字符集(参见第10.4节“连接字符集和排序规则”),导致转储文件无法正常加载。要解决此问题,请使用——结果文件
选项,它创建ASCII格式的输出:
mysqlpump[选项]——结果文件= dump.sql
mysqlpump调用语法
默认情况下,mysqlpump转储所有数据库(在mysqlpump限制).要显式指定此行为,请使用——所有数据库
选择:
mysqlpump——所有数据库
要转储单个数据库或数据库中的某些表,请在命令行中为数据库命名,并可选地在后面加上表名:
mysqlpumpdb_namemysqlpumpDb_name tbl_name1 tbl_name2…
要将所有名称参数视为数据库名称,请使用——数据库
选择:
mysqlpump——数据库db_name1 db_name2...
默认情况下,mysqlpump不转储用户帐户定义,即使转储mysql
包含授权表的系统数据库。将授权表内容转储为形式的逻辑定义创建用户
而且格兰特
语句,使用——用户
选项并抑制所有数据库转储:
mysqlpump exclude-databases = %——用户
在上述命令中,%
匹配所有数据库名的通配符——exclude-databases
选择。
mysqlpump支持包含或不包含数据库、表、存储程序和用户定义的多个选项。看到mysqlpump对象选择.
要重新加载转储文件,请执行其中包含的语句。例如,使用mysql客户:
Mysqlpump [options] > dump.sqlmysql< dump.sql
下面的讨论提供了额外的内容mysqlpump用法示例。
以查看选项的列表mysqlpump支持,发出命令mysqlpump——帮助.
mysqlpump选项总结
mysqlpump支持以下选项,这些选项可以在命令行或(mysqlpump)
而且(客户端)
选项文件的分组。在MySQL 8.0.20之前,mysqlpump读了(mysql_dump)
组而不是(mysqlpump)
.8.0.20,(mysql_dump)
仍然被接受,但已被弃用。)有关MySQL程序使用的选项文件的信息,请参见第4.2.2.2节“使用选项文件”.
表4.16 mysqlpump选项
选项名称 | 描述 | 介绍了 | 弃用 |
---|---|---|---|
——add-drop-database | 在每个CREATE DATABASE语句之前添加DROP DATABASE语句 | ||
——add-drop-table | 在每个CREATE TABLE语句之前添加DROP TABLE语句 | ||
——add-drop-user | 在每个CREATE USER语句之前添加DROP USER语句 | ||
——锁 | 用LOCK TABLES和UNLOCK TABLES语句包围每个表转储 | ||
——所有数据库 | 所有数据库转储 | ||
——bind-address | 使用指定的网络接口连接MySQL服务器 | ||
——character-sets-dir | 字符集的安装目录 | ||
——列统计 | 编写ANALYZE TABLE语句生成统计直方图 | ||
——complete-insert | 使用包含列名的完整INSERT语句 | ||
——压缩 | 压缩客户端和服务器之间发送的所有信息 | 8.0.18 | |
——compress-output | 输出压缩算法 | ||
——压缩算法 | 允许对连接到服务器的压缩算法 | 8.0.18 | |
——数据库 | 将所有名称参数解释为数据库名称 | ||
——调试 | 编写调试日志 | ||
——debug-check | 当程序退出时打印调试信息 | ||
——debug-info | 当程序退出时打印调试信息、内存和CPU统计信息 | ||
——default-auth | 要使用的身份验证插件 | ||
——default-character-set | 指定默认字符集 | ||
——default-parallelism | 用于并行处理的默认线程数 | ||
——defaults-extra-file | 除了通常的选项文件外,还读取指定的选项文件 | ||
——defaults-file | 只读命名选项文件 | ||
——defaults-group-suffix | 选项组后缀值 | ||
——defer-table-indexes | 要重新加载,请将索引创建推迟到加载表行之后 | ||
——事件 | 从转储的数据库中转储事件 | ||
——exclude-databases | 要从转储中排除的数据库 | ||
——exclude-events | 要从转储中排除的事件 | ||
——exclude-routines | 要从转储中排除的例程 | ||
——排除表 | 要从转储中排除的表 | ||
——exclude-triggers | 要从转储中排除的触发器 | ||
——exclude-users | 要从转储中排除的用户 | ||
——extended-insert | 使用多行INSERT语法 | ||
——get-server-public-key | 从服务器请求RSA公钥 | ||
——帮助 | 显示帮助信息并退出 | ||
——hex-blob | 使用十六进制表示法转储二进制列 | ||
——主机 | MySQL服务器所在的主机 | ||
——包括数据库 | 要包含在转储中的数据库 | ||
——include-events | 要包含在转储中的事件 | ||
——include-routines | 要包含在转储中的例程 | ||
——包括表格 | 要包含在转储中的表 | ||
——include-triggers | 要包含在转储中的触发器 | ||
——包括残 | 要包含在转储中的用户 | ||
——insert-ignore | 写INSERT IGNORE语句而不是INSERT语句 | ||
——log-error-file | 向命名文件追加警告和错误 | ||
——登录路径 | 从.mylogin.cnf读取登录路径选项 | ||
——max-allowed-packet | 发送到或从服务器接收的最大包长度 | ||
——net-buffer-length | TCP/IP和套接字通信的缓冲区大小 | ||
——no-create-db | 不写CREATE DATABASE语句 | ||
——no-create-info | 不写CREATE TABLE语句重新创建每个转储表 | ||
——已 | 读取无选项文件 | ||
——parallel-schemas | 指定schema-processing并行性 | ||
——密码 | 连接到服务器时使用的密码 | ||
——plugin-dir | 安装插件的目录 | ||
——港口 | TCP/IP连接端口号 | ||
——print-defaults | 打印默认选项 | ||
——协议 | 要使用的传输协议 | ||
——取代 | 编写REPLACE语句而不是INSERT语句 | ||
——结果文件 | 直接输出到给定的文件 | ||
——例程 | 从转储的数据库中转储存储的例程(过程和函数) | ||
——server-public-key-path | 包含RSA公钥文件的路径名称 | ||
——set-charset | 将SET NAMES default_character_set添加到输出 | ||
——set-gtid-purged | 是否添加SET @@GLOBAL。GTID_PURGED输出 | ||
——单独的事务 | 在单个事务中转储表 | ||
——skip-definer | 从视图和存储程序CREATE语句中省略DEFINER和SQL SECURITY子句 | ||
——skip-dump-rows | 不转储表行 | ||
——套接字 | Unix套接字文件或Windows命名管道使用 | ||
——ssl-ca | 包含受信任的SSL证书颁发机构列表的文件 | ||
——ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | ||
——ssl-cert | 包含X.509证书的文件 | ||
——ssl cipher | 用于连接加密的允许密码 | ||
——ssl-crl | 包含证书撤销列表的文件 | ||
——ssl-crlpath | 包含证书撤销列表文件的目录 | ||
——ssl-fips-mode | 客户端是否开启FIPS模式 | ||
——ssl密钥 | 包含X.509密钥的文件 | ||
——ssl-mode | 到服务器的连接所需的安全状态 | ||
——tls-ciphersuites | 用于加密连接的允许TLSv1.3加密套件 | 8.0.16 | |
——tls版本 | 加密连接允许的TLS协议 | ||
——触发器 | 转储每个已转储表的触发器 | ||
——tz-utc | 添加SET TIME_ZONE='+00:00'转储文件 | ||
——用户 | 连接到服务器时使用的MySQL用户名 | ||
——用户 | 把用户帐户 | ||
——版本 | 显示版本信息并退出 | ||
——watch-progress | 显示进度 | ||
——zstd-compression-level | 连接到使用zstd压缩的服务器的压缩级别 | 8.0.18 |
mysqlpump选项的描述
——帮助
,-?
显示帮助消息并退出。
-
请注意
在MySQL 8.0中
mysql
模式被认为是终端用户不能删除的系统模式。如果——add-drop-database
是使用——所有数据库
或与——数据库
要转储的模式列表包括在哪里mysql
,转储文件中包含减少数据库的mysql
语句,该语句在重新加载转储文件时导致错误。相反,使用
——add-drop-database
,使用——数据库
使用要转储的模式列表,其中列表不包括mysql
. 围绕每个表转储
锁表
而且打开表
语句。这将导致在重新加载转储文件时更快地插入。看到第8.2.5.1节“优化INSERT语句”.——所有数据库
,——一个
转储所有数据库(在mysqlpump限制).如果没有显式指定other,则这是默认行为。
请注意看到
——add-drop-database
说明,以获取有关该选项与的不兼容的信息——所有数据库
.在MySQL 8.0之前,
——例程
而且——事件
选项, mysqldump而且mysqlpump时不需要包含存储的例程和事件——所有数据库
选项:转储包含mysql
系统数据库,因此也mysql.proc
而且mysql.event
包含已存储例程和事件定义的表。从MySQL 8.0开始,mysql.event
而且mysql.proc
不使用表。对应对象的定义存储在数据字典表中,但这些表不会被转储。将存储的例程和事件包含在使用——所有数据库
,可以使用——例程
而且——事件
明确的选择。在具有多个网络接口的计算机上,使用此选项选择使用哪个接口连接到MySQL服务器。
字符集的安装目录。看到第10.15节“字符集配置”.
添加
分析表
语句,以便在重新加载转储文件时为转储表生成直方图统计信息。默认情况下禁用此选项,因为生成大型表的直方图可能需要很长时间。写完整
插入
包含列名的语句。——压缩
,- c
如果可能,压缩客户机和服务器之间发送的所有信息。看到第4.2.8节,“连接压缩控制”.
从MySQL 8.0.18开始,这个选项已被弃用。希望它在MySQL的未来版本中被删除。看到配置遗留连接压缩.
默认情况下,mysqlpump不压缩输出。此选项指定使用指定算法的输出压缩。允许算法
LZ4
而且ZLIB
.要解压缩已压缩的输出,必须有适当的实用程序。如果系统命令lz4而且openssl zlib, MySQL发行版包括lz4_decompress而且zlib_decompress可用于解压缩的实用程序mysqlpump方法压缩的输出
——compress-output = LZ4
而且——compress-output = ZLIB
选项。有关更多信息,请参见“lz4_decompress -解压mysqlpump LZ4-Compressed Output”,“zlib_decompress -解压mysqlpump zlib -压缩输出”.连接到服务器的允许的压缩算法。可用的算法与
protocol_compression_algorithms
系统变量。默认值为未压缩的
.有关更多信息,请参见第4.2.8节,“连接压缩控制”.
这个选项是在MySQL 8.0.18中添加的。
——数据库
,- b
通常情况下,mysqlpump将命令行上的第一个name参数作为数据库名称,将后面的任何名称作为表名称。使用此选项,它将所有名称参数视为数据库名称。
创建数据库
语句包含在每个新数据库之前的输出中。请注意看到
——add-drop-database
说明,以获取有关该选项与的不兼容的信息——数据库
.——调试(=
,debug_options
]- # (
debug_options
]编写调试日志。一个典型的
debug_options
字符串是d:师:啊,
.默认值是file_name
d:师:啊,/ tmp / mysqlpump.trace
.此选项仅在MySQL使用
WITH_DEBUG
.Oracle提供的MySQL版本二进制文件是不使用此选项构建。当程序退出时打印一些调试信息。
此选项仅在MySQL使用
WITH_DEBUG
.Oracle提供的MySQL版本二进制文件是不使用此选项构建。——debug-info
,- t
当程序退出时打印调试信息以及内存和CPU使用统计信息。
此选项仅在MySQL使用
WITH_DEBUG
.Oracle提供的MySQL版本二进制文件是不使用此选项构建。关于使用哪个客户端身份验证插件的提示。看到第6.2.17节,“可插入认证”.
——default-character-set =
charset_name
使用
charset_name
作为默认字符集。看到第10.15节“字符集配置”.如果没有指定字符集,mysqlpump使用use utf8
.每个并行处理队列的默认线程数。默认值为2。
的
——parallel-schemas
选项还会影响并行性,并可用于覆盖默认线程数。有关更多信息,请参见mysqlpump并行处理.与
——default-parallelism = 0
也没有——parallel-schemas
选项,mysqlpump作为单线程进程运行,不创建队列。启用了并行性后,来自不同数据库的输出就可以相互交错。
——defaults-extra-file =
file_name
读取该选项文件在全局选项文件之后,但(在Unix上)在用户选项文件之前。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,它是相对于当前目录解释的。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
只使用给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,它是相对于当前目录解释的。例外:即使
——defaults-file
,读取客户端程序.mylogin.cnf
.有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
不仅要读通常的选项组,还要读具有通常名称和后缀的组
str
.例如,mysqlpump正常读取(客户端)
而且(mysqlpump)
组。如果该选项为——defaults-group-suffix = _other
,mysqlpump还读(client_other)
而且(mysqlpump_other)
组。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
在转储输出中,将每个表的索引创建推迟到装载其行之后。这适用于所有存储引擎,但适用于
InnoDB
仅适用于二级索引。默认情况下该选项是启用的;使用
——skip-defer-table-indexes
禁用它。在输出中包含转储数据库的事件调度器事件。事件转储需要
事件
这些数据库的特权。默认情况下该选项是启用的;使用
——skip-events
禁用它。不转储数据库
db_list
,它是一个或多个以逗号分隔的数据库名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.不转储数据库
event_list
,它是一个或多个以逗号分隔的事件名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.——exclude-routines =
routine_list
不转储事件
routine_list
,它是一个或多个用逗号分隔的例程(存储过程或函数)名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.不要把表格倒进去
table_list
,它是一个由一个或多个逗号分隔的表名组成的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.——exclude-triggers =
trigger_list
不转储触发器
trigger_list
,它是一个或多个以逗号分隔的触发器名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.不转储用户帐户
user_list
,这是一个由一个或多个以逗号分隔的帐户名组成的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.写
插入
使用多行语法的语句,其中包含多个值
列表。这将生成一个更小的转储文件,并在重新加载文件时加快插入。从服务器请求基于RSA密钥对的密码交换所需的公钥。该选项应用于使用
caching_sha2_password
身份验证插件。对于该插件,服务器不发送公钥,除非请求。对于不使用该插件进行身份验证的帐户,该选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,就像客户机使用安全连接连接到服务器时的情况一样。如果
——server-public-key-path =
,并指定有效的公钥文件,它优先于file_name
——get-server-public-key
.有关
caching_sha2_password
插件,看到第6.4.1.2节,“缓存SHA-2可插入认证”.使用十六进制表示法(例如,
“abc”
就变成了0 x616263
).受影响的数据类型为二进制
,VARBINARY
,团
类型,位
类一起使用时,所有空间数据类型以及其他非二进制数据类型二进制
字符集.——主机=
,host_name
- h
host_name
从给定主机上的MySQL服务器转储数据。
将数据库转储到
db_list
,它是一个或多个以逗号分隔的数据库名称的列表。转储包括命名数据库中的所有对象。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.将事件转储到
event_list
,它是一个或多个以逗号分隔的事件名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.——include-routines =
routine_list
将例程转储到
routine_list
,它是一个或多个用逗号分隔的例程(存储过程或函数)名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.把表放进去
table_list
,它是一个由一个或多个逗号分隔的表名组成的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.——include-triggers =
trigger_list
转储触发器
trigger_list
,它是一个或多个以逗号分隔的触发器名称的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.转储用户帐户
user_list
,它是一个或多个以逗号分隔的用户名的列表。该选项的多个实例是附加的。有关更多信息,请参见mysqlpump对象选择.通过将警告和错误追加到命名文件中来记录它们。如果没有给出此选项,mysqlpump将警告和错误写入标准错误输出。
控件中的命名登录路径中读取选项
.mylogin.cnf
登录路径文件。一个”登录路径”是一个选项组,其中包含指定要连接到哪个MySQL服务器以及要验证为哪个帐户的选项。创建或修改登录路径文件,请使用mysql_config_editor实用程序。看到章节4.6.7,“mysql_config_editor - MySQL配置工具”.有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
客户端/服务器通信缓冲区的最大大小。默认值为24MB,最大值为1GB。
用于客户机/服务器通信的缓冲区的初始大小。当创建多行
插入
语句(如——extended-insert
选项),mysqlpump创建上至N
个字节长。如果使用此选项增加该值,请确保MySQL服务器net_buffer_length
系统变量至少有这么大的值。抑制任何
创建数据库
语句,否则可能包含在输出中。——no-create-info
,- t
不写
创建表
创建每个转储表的语句。不要读取任何选项文件。如果从选项文件中读取未知选项导致程序启动失败,
——已
可用于防止它们被读取。例外的是
.mylogin.cnf
如果文件存在,则在所有情况下都读取它。这允许以比命令行更安全的方式指定密码,即使在某些情况下——已
使用。创建.mylogin.cnf
,可以使用mysql_config_editor实用程序。看到章节4.6.7,“mysql_config_editor - MySQL配置工具”.有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
——parallel-schemas = (
N
:]db_list
创建一个队列来处理其中的数据库
db_list
,它是一个或多个以逗号分隔的数据库名称的列表。如果N
给定,队列使用N
线程。如果N
不是给定的,该——default-parallelism
选项确定队列线程的数量。该选项的多个实例创建多个队列。mysqlpump还创建一个默认队列,用于任何中未命名的数据库
——parallel-schemas
选项,如果命令选项选择了它们,则用于转储用户定义。有关更多信息,请参见mysqlpump并行处理.——密码(=
,密码
]- p (
密码
]连接服务器时使用的MySQL帐户密码。“password”为可选参数。如果不是,mysqlpump提示。如果已知,就一定存在没有空间之间的
——密码=
或- p
还有后面的密码。如果没有指定密码选项,默认是不发送密码。在命令行上指定密码应该被认为是不安全的。为了避免在命令行上给出密码,请使用选项文件。看到第6.1.2.1节“密码保安最终用户指引”.
显式指定没有密码,并且mysqlpump不应提示一个,用
——skip-password
选择。查找插件的目录。的情况下指定此选项
——default-auth
选项用于指定身份验证插件,但是mysqlpump没有找到它。看到第6.2.17节,“可插入认证”.——港口=
,port_num
- p
port_num
对于TCP/IP连接,使用的端口号。
打印程序名称和它从选项文件中获得的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
用于连接到服务器的传输协议。当其他连接参数通常导致使用的协议不是您想要的协议时,它很有用。具体的允许值请参见第4.2.7节,“连接传输协议”.
直接输出到指定文件。即使在生成转储时发生错误,也会创建结果文件并覆盖其以前的内容。
这个选项应该在Windows上使用,以防止换行
\ n
被转换为的字符\ r \ n
回车/换行符序列。在输出中包含转储数据库的存储例程(过程和函数)。此选项需要全局
选择
特权。使用生成的输出
——例程
包含创建过程
而且创建函数
语句来创建例程。默认情况下该选项是启用的;使用
——skip-routines
禁用它。——server-public-key-path =
file_name
PEM格式文件的路径名,其中包含服务器用于基于RSA密钥对的密码交换所需的公钥的客户端副本。该选项应用于使用
sha256_password
或caching_sha2_password
身份验证插件。对于没有使用其中一个插件进行身份验证的帐户,该选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,就像客户机使用安全连接连接到服务器时的情况一样。如果
——server-public-key-path =
,并指定有效的公钥文件,它优先于file_name
——get-server-public-key
.为
sha256_password
,此选项仅适用于使用OpenSSL构建的MySQL。有关
sha256_password
而且caching_sha2_password
插件,看到第6.4.1.3节“SHA-256可插式认证”,第6.4.1.2节,“缓存SHA-2可插入认证”.默认情况下该选项是启用的。禁用它并抑制
组名称
声明中,使用——skip-set-charset
.该选项通过指示是否添加到转储文件中的全局事务ID (GTID)信息来控制
设置@@GLOBAL.gtid_purged
语句的输出。此选项还可能导致在重新加载转储文件时向输出写入禁止二进制日志记录的语句。下表显示了允许的选项值。默认值为
汽车
.价值 意义 从
添加不 集
语句的输出。在
添加一个 集
语句的输出。如果服务器上没有启用gtid,则会发生错误。汽车
添加一个 集
如果在服务器上启用了gtid,则将该语句添加到输出。的
——set-gtid-purged
选项在重新加载转储文件时对二进制日志记录有以下影响:——set-gtid-purged =了
:设置@@SESSION.SQL_LOG_BIN = 0;
不添加到输出中。——set-gtid-purged =
:设置@@SESSION.SQL_LOG_BIN = 0;
添加到输出中。——set-gtid-purged =汽车
:设置@@SESSION.SQL_LOG_BIN = 0;
如果您备份的服务器上启用了gtid(即,如果汽车
计算结果为在
).
此选项将事务隔离模式设置为
可重复读取
并发送一个开始事务
在转储数据之前向服务器发送SQL语句。它只对事务表有用,例如InnoDB
,因为它会转储数据库在某时的一致状态开始事务
没有阻止任何申请。在使用此选项时,您应该记住只有
InnoDB
以一致状态转储表。例如,任何MyISAM
或内存
在使用此选项时转储的表仍然可能改变状态。而一个
——单独的事务
转储正在进行中,为了确保有效的转储文件(正确的表内容和二进制日志坐标),其他连接不应该使用以下语句:ALTER TABLE
,创建表
,删除表
,重命名表
,截断表
.一致读并没有与这些语句隔离开来,因此在要转储的表上使用它们可能会导致选择
这是由mysqlpump检索表内容,以获取不正确的内容或失败。省略
定义者
而且SQL安全
的条款创建
视图和存储程序的语句。重新加载转储文件时,将创建使用默认值的对象定义者
而且SQL安全
值。看到第25.6节,“存储对象访问控制”.——skip-dump-rows
,- d
不要转储表行。
——套接字=
,路径
- s
路径
为连接
本地主机
,即要使用的Unix套接字文件,或者在Windows上是要使用的命名管道的名称。在Windows上,此选项仅适用于服务器是用
named_pipe
系统变量已启用,支持命名管道连接。控件指定的Windows组的成员named_pipe_full_access_group
系统变量。选项以
——ssl
指定是否使用加密连接到服务器,并指示在哪里查找SSL密钥和证书。看到加密连接的命令选项.控制是否在客户端启用FIPS模式。的
——ssl-fips-mode
选项与其他选项不同——ssl
选项,因为它不是用来建立加密连接,而是用来影响允许哪些加密操作。看到第6.8节,“FIPS支持”.xxx
这些
——ssl-fips-mode
值是允许的:从
:禁用FIPS模式。在
:启用FIPS模式。严格的
:使”严格的”FIPS模式。
请注意如果OpenSSL FIPS对象模块不可用,则仅允许的值
——ssl-fips-mode
是从
.在本例中,设置——ssl-fips-mode
来在
或严格的
导致客户端在启动时产生警告,并在非fips模式下运行。——tls-ciphersuites =
ciphersuite_list
使用TLSv1.3的加密连接所允许的密码套件。一个或多个以冒号分隔的密码套件名称的列表。可以以此选项命名的密码套件取决于用于编译MySQL的SSL库。有关详细信息,请参见第6.3.2节“加密连接TLS协议和密码”.
这个选项是在MySQL 8.0.16中添加的。
加密连接所允许的TLS协议。一个或多个以逗号分隔的协议名称的列表。可以以此选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见第6.3.2节“加密连接TLS协议和密码”.
在输出中包含每个转储表的触发器。
默认情况下该选项是启用的;使用
——skip-triggers
禁用它。这个选项允许
时间戳
在不同时区的服务器之间转储和重新加载的列。mysqlpump设置其连接时区为UTC并添加设置TIME_ZONE = 0 ' + '
到转储文件。没有这个选项,时间戳
在源服务器和目标服务器的本地时区转储和重新加载列,如果服务器位于不同的时区,这可能导致值发生更改。——tz-utc
还可以防止夏令时造成的更改。默认情况下该选项是启用的;使用
——skip-tz-utc
禁用它。——用户=
,user_name
- u
user_name
用于连接到服务器的MySQL帐户的用户名。
的授权表中存储用户定义
mysql
系统数据库。默认情况下,mysqlpump不包括拨款表mysql
数据库转储。要将授予表的内容转储为逻辑定义,请使用——用户
选项并抑制所有数据库转储:mysqlpump exclude-databases = %——用户
——版本
,- v
显示版本信息并退出。
定期显示进度指示器,它提供关于已完成的表、行和其他对象的总数和总数的信息。
默认情况下该选项是启用的;使用
——skip-watch-progress
禁用它。的服务器连接要使用的压缩级别
zstd
压缩算法。允许的级别从1到22,数值越大表示压缩级别越高。默认的zstd
压缩级别为3。压缩级别设置对不使用的连接没有影响zstd
压缩。有关更多信息,请参见第4.2.8节,“连接压缩控制”.
这个选项是在MySQL 8.0.18中添加的。
mysqlpump对象选择
mysqlpump具有一组包含和排除选项,可以对几种对象类型进行过滤,并对要转储的对象提供灵活控制:
——包括数据库
而且——exclude-databases
应用于数据库及其中的所有对象。——include-triggers
而且——exclude-triggers
适用于触发器。——include-routines
而且——exclude-routines
应用于存储过程和函数。如果一个例程选项匹配一个存储过程名,它也匹配一个同名的存储函数。——include-events
而且——exclude-events
应用于事件调度器事件。——包括残
而且——exclude-users
应用于用户帐户。
任何包含或排除选项都可以给出多次。这种效应是累加的。这些选项的顺序并不重要。
每个包含和排除选项的值是适当对象类型的逗号分隔的名称列表。例如:
——世界exclude-databases =测试——包括表格=客户,发票
对象名称中允许使用通配符:
%
匹配任何零个或多个字符的序列。_
匹配任何单个字符。
例如,——包括表格= t %, __tmp
匹配以开头的所有表名t
以及所有以。结尾的五个字符的表名tmp
.
对于用户,未指定主机部分的名称将用隐含的主机解释%
.例如,u1
而且u1@ %
是等价的。这与MySQL中应用的内容是一样的第6.2.4节“指定帐户名称”).
包含和排除选项以以下方式相互作用:
默认情况下,没有包含或排除选项,mysqlpump转储所有数据库(在mysqlpump限制).
如果在没有排除选项的情况下给出了包含选项,则只转储命名为包含的对象。
如果在没有包含选项的情况下给出了排除选项,则转储所有对象,但命名为排除的对象除外。
如果给出了包含和排除选项,则不转储所有命名为排除和未命名为包含的对象。所有其他对象都被转储。
如果正在转储多个数据库,则可以通过用数据库名称限定对象名称来命名特定数据库中的表、触发器和例程。下面的命令转储数据库db1
而且db2
,但不包括表db1.t1
而且db2.t2
:
mysqlpump——包括数据库= db1、db2——排除表= db1.t1 db2.t2
以下选项提供了指定转储数据库的替代方法:
的
——所有数据库
选项转储所有数据库(在mysqlpump限制).它等价于完全不指定对象选项(默认值mysqlpump行动就是抛弃一切)。——包括数据库= %
类似于——所有数据库
,但是选择转储的所有数据库,即使是例外的数据库——所有数据库
.的
——数据库
选择的原因mysqlpump将所有名称参数视为要转储的数据库的名称。它等价于an——包括数据库
选项,该选项命名相同的数据库。
mysqlpump并行处理
mysqlpump可以利用并行性实现并发处理。您可以选择数据库之间的并发性(以同时转储多个数据库)和数据库内部的并发性(以同时从给定数据库转储多个对象)。
默认情况下,mysqlpump设置一个具有两个线程的队列。你可以创建额外的队列并控制分配给每个队列的线程数,包括默认队列:
——default-parallelism =
指定每个队列使用的默认线程数。如果没有这个选项,N
N
是2。默认队列总是使用默认的线程数。其他队列使用默认线程数,除非另有指定。
——parallel-schemas = (
为转储中命名的数据库设置处理队列N
:]db_list
db_list
并可选地指定队列使用的线程数。db_list
以逗号分隔的数据库名称的列表。如果option参数以
,该队列使用N
:N
线程。否则,——default-parallelism
选项确定队列线程的数量。的多个实例
——parallel-schemas
选项创建多个队列。数据库列表中的名称允许包含相同的名称
%
而且_
过滤选项支持通配符(参见mysqlpump对象选择).
mysqlpump类显式命名的任何数据库都使用默认队列——parallel-schemas
选项,如果命令选项选择了它们,则用于转储用户定义。
一般来说,对于多个队列,mysqlpump使用队列处理的数据库集之间的并行性,以同时转储多个数据库。对于使用多线程的队列,mysqlpump在数据库中使用并行性,从给定的数据库中同时转储多个对象。异常情况都可能发生;例如,mysqlpump当它从数据库中的对象的服务器列表中获取时,可能阻塞队列。
启用了并行性后,来自不同数据库的输出就可以相互交错。例如,插入
来自并行转储的多个表的语句可以交错;这些语句没有任何特定的顺序。这不会影响重新加载,因为输出语句用数据库名限定对象名,或者在对象名之前加上使用
语句的要求。
并行度的粒度是单个数据库对象。例如,不能使用多线程并行转储单个表。
例子:
mysqlpump——parallel-schemas = db1、db2——parallel-schemas = db4
mysqlpump设置要处理的队列db1
而且db2
,另一个要处理的队列db4
,以及一个默认队列来处理所有其他数据库。所有队列都使用两个线程。
Mysqlpump——parallel-schemas=db1,db2——parallel-schemas=db3——default-parallelism=4
这与前面的示例相同,只是所有队列都使用四个线程。
mysqlpump——parallel-schemas = 5: db1、db2——parallel-schemas = 3: db4
的队列db1
而且db2
使用五个线程,队列为db4
使用三个线程,默认队列使用默认的两个线程。
作为特例,与——default-parallelism = 0
也没有——parallel-schemas
选项,mysqlpump作为单线程进程运行,不创建队列。
mysqlpump限制
mysqlpump不转储performance_schema
,ndbinfo
,或sys
默认模式。要转储其中任何一个,请在命令行中显式地命名它们。也可以用——数据库
或——包括数据库
选择。
mysqlpump不转储INFORMATION_SCHEMA
模式。
mysqlpump以逻辑形式转储用户帐户创建用户
而且格兰特
语句(例如,当您使用——包括残
或——用户
选项)。因此,垃圾场的mysql
默认情况下,系统数据库不包含包含用户定义的授权表:用户
,db
,tables_priv
,columns_priv
,procs_priv
,或proxies_priv
.要转储任何授权表,请将mysql
数据库后面跟着表名:
mysql用户数据库…