要控制 X 插件的激活,请使用此选项:
-
命令行格式 --mysqlx[=value]
类型 枚举 默认值 ON
有效值 ON
OFF
FORCE
FORCE_PLUS_PERMANENT
此选项控制服务器在启动时如何加载 X 插件。在 MySQL 8.0 中,X Plugin 是默认开启的,但是这个选项可以用来控制它的激活状态。
选项值应该是可用于插件加载选项的值之一,如 第 5.6.1 节“安装和卸载插件”中所述。
如果启用了 X 插件,它会公开几个允许控制其操作的系统变量:
-
命令行格式 --mysqlx-bind-address=addr
系统变量 mysqlx_bind_address
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 细绳 默认值 *
X 插件侦听 TCP/IP 连接的网络地址。此变量不是动态的,只能在启动时配置。这是
bind_address
系统变量的 X 插件等价物;有关详细信息,请参阅该变量描述。默认情况下,X 插件在所有服务器主机 IPv4 接口上接受 TCP/IP 连接,如果服务器主机支持 IPv6,则在所有 IPv6 接口上接受。如果
mysqlx_bind_address
指定,其值必须满足以下要求:在 MySQL 8.0.21 之前,
mysqlx_bind_address
接受单个地址值,它可以指定单个非通配符 IP 地址(IPv4 或 IPv6),或主机名,或允许在多个网络接口上侦听的通配符地址格式之一(*
,0.0.0.0
, 或::
).从 MySQL 8.0.21 开始,
mysqlx_bind_address
接受刚才描述的单个值或逗号分隔值列表。当变量命名多个值的列表时,每个值必须指定一个非通配符 IP 地址(IPv4 或 IPv6)或主机名。值列表中不允许使用 通配符地址格式(*
、0.0.0.0
或 )。::
从 MySQL 8.0.22 开始,该值可能包含网络命名空间说明符。
IP 地址可以指定为 IPv4 或 IPv6 地址。对于作为主机名的任何值,X 插件将名称解析为 IP 地址并绑定到该地址。如果主机名解析为多个 IP 地址,则 X Plugin 使用第一个 IPv4 地址(如果有),否则使用第一个 IPv6 地址。
X Plugin 处理不同类型的地址如下:
如果地址是
*
,X Plugin 在所有服务器主机 IPv4 接口上接受 TCP/IP 连接,如果服务器主机支持 IPv6,则在所有 IPv6 接口上。使用此地址允许 X 插件的 IPv4 和 IPv6 连接。此值为默认值。如果变量指定了多个值的列表,则不允许使用该值。如果地址是
0.0.0.0
,则 X 插件接受所有服务器主机 IPv4 接口上的 TCP/IP 连接。如果变量指定了多个值的列表,则不允许使用该值。如果地址是
::
,则 X 插件接受所有服务器主机 IPv4 和 IPv6 接口上的 TCP/IP 连接。如果变量指定了多个值的列表,则不允许使用该值。如果地址是 IPv4 映射地址,X Plugin 接受该地址的 TCP/IP 连接,采用 IPv4 或 IPv6 格式。例如,如果 X Plugin 绑定到
::ffff:127.0.0.1
,则 MySQL Shell 等客户端可以使用--host=127.0.0.1
或 进行连接--host=::ffff:127.0.0.1
。如果地址是“常规” IPv4 或 IPv6 地址(例如
127.0.0.1
或::1
),X Plugin 仅接受该 IPv4 或 IPv6 地址的 TCP/IP 连接。
这些规则适用于为地址指定网络名称空间:
可以为 IP 地址或主机名指定网络命名空间。
不能为通配符 IP 地址指定网络命名空间。
对于给定的地址,网络名称空间是可选的。如果给定,则必须将其指定为 紧跟在地址之后的后缀。
/
ns
没有 后缀的地址使用主机系统全局命名空间。因此全局命名空间是默认的。
/
ns
带有 后缀的地址使用名为 的命名空间。
/
ns
ns
主机系统必须支持网络命名空间,并且每个命名空间必须之前已经设置。命名不存在的名称空间会产生错误。
如果变量值指定多个地址,它可以包括全局名称空间、命名名称空间或混合名称空间中的地址。
有关网络名称空间的其他信息,请参阅 第 5.1.14 节,“网络名称空间支持”。
重要的因为 X Plugin 不是强制性插件,所以如果指定地址或地址列表出现错误,它不会阻止服务器启动(如 MySQL Server 对
bind_address
错误所做的那样)。对于 X Plugin,如果无法解析其中一个列出的地址,或者如果 X Plugin 无法绑定到它,则跳过该地址,记录一条错误消息,并且 X Plugin 尝试绑定到每个剩余地址。X插件的Mysqlx_address
status 变量仅显示列表中绑定成功的那些地址。如果列出的地址均未导致成功绑定,或者如果单个指定地址失败,则 X 插件会记录错误消息ER_XPLUGIN_FAILED_TO_PREPARE_IO_INTERFACES
,指出无法使用 X 协议。mysqlx_bind_address
不是动态的,因此要解决任何问题,您必须停止服务器,更正系统变量值,然后重新启动服务器。 -
命令行格式 --mysqlx-compression-algorithms=value
介绍 8.0.19 系统变量 mysqlx_compression_algorithms
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 放 默认值 deflate_stream,lz4_message,zstd_stream
有效值 deflate_stream
lz4_message
zstd_stream
允许在 X 协议连接上使用的压缩算法。默认情况下,Deflate、LZ4 和 zstd 算法都是允许的。要禁止任何算法,请设置
mysqlx_compression_algorithms
为仅包含您允许的算法。算法名称deflate_stream
,lz4_message
, 和zstd_stream
可以任意组合指定,顺序和大小写不重要。如果将系统变量设置为空字符串,则不允许使用任何压缩算法,并且只使用未压缩的连接。使用特定于算法的系统变量来调整每个允许的算法的默认和最大压缩级别。有关更多详细信息,以及有关 X 协议的连接压缩如何与 MySQL 服务器的等效设置相关的信息,请参阅 第 20.5.5 节,“使用 X 插件进行连接压缩”。 -
命令行格式 --mysqlx-connect-timeout=#
系统变量 mysqlx_connect_timeout
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 30
最小值 1
最大值 1000000000
单元 秒 X 插件等待从新连接的客户端接收到第一个数据包的秒数。这是 X 插件等同于
connect_timeout
;有关详细信息,请参阅该变量描述。 mysqlx_deflate_default_compression_level
命令行格式 --mysqlx_deflate_default_compression_level=#
介绍 8.0.20 系统变量 mysqlx_deflate_default_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 3
最小值 1
最大值 9
服务器用于 X 协议连接上的 Deflate 算法的默认压缩级别。将级别指定为从 1(最低压缩效果)到 9(最高效果)的整数。如果客户端在能力协商期间不请求压缩级别,则使用此级别。如果不指定此系统变量,服务器将使用级别 3 作为默认值。有关详细信息,请参阅第 20.5.5 节,“使用 X 插件进行连接压缩”。
mysqlx_deflate_max_client_compression_level
命令行格式 --mysqlx_deflate_max_client_compression_level=#
介绍 8.0.20 系统变量 mysqlx_deflate_max_client_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 5
最小值 1
最大值 9
服务器允许 X 协议连接上的 Deflate 算法的最大压缩级别。该范围与该算法的默认压缩级别相同。如果客户端请求比这更高的压缩级别,服务器将使用您在此处设置的级别。如果不指定此系统变量,则服务器将最大压缩级别设置为 5。
mysqlx_document_id_unique_prefix
命令行格式 --mysqlx-document-id-unique-prefix=#
系统变量 mysqlx_document_id_unique_prefix
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 0
最小值 0
最大值 65535
设置文档添加到集合时服务器生成的文档 ID 的前 4 个字节。通过将此变量设置为每个实例的唯一值,您可以确保文档 ID 在各个实例中是唯一的。请参阅 了解文档 ID。
-
命令行格式 --mysqlx-enable-hello-notice[={OFF|ON}]
系统变量 mysqlx_enable_hello_notice
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 布尔值 默认值 ON
控制发送到尝试通过 X 协议连接的经典 MySQL 协议客户端的消息。启用后,不支持 X 协议的客户端尝试连接到服务器 X 协议端口时会收到一条错误消息,说明它们使用了错误的协议。
mysqlx_idle_worker_thread_timeout
命令行格式 --mysqlx-idle-worker-thread-timeout=#
系统变量 mysqlx_idle_worker_thread_timeout
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 60
最小值 0
最大值 3600
单元 秒 空闲工作线程终止后的秒数。
-
命令行格式 --mysqlx-interactive-timeout=#
系统变量 mysqlx_interactive_timeout
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 28800
最小值 1
最大值 2147483
单元 秒 mysqlx_wait_timeout
交互式客户端会话变量 的默认值 。(等待交互式客户端超时的秒数。) mysqlx_lz4_default_compression_level
命令行格式 --mysqlx_lz4_default_compression_level=#
介绍 8.0.20 系统变量 mysqlx_lz4_default_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 2
最小值 0
最大值 16
服务器在 X 协议连接上用于 LZ4 算法的默认压缩级别。将级别指定为从 0(最低压缩效果)到 16(最高效果)的整数。如果客户端在能力协商期间不请求压缩级别,则使用此级别。如果不指定此系统变量,服务器将使用级别 2 作为默认值。有关详细信息,请参阅第 20.5.5 节,“使用 X 插件进行连接压缩”。
mysqlx_lz4_max_client_compression_level
命令行格式 --mysqlx_lz4_max_client_compression_level=#
介绍 8.0.20 系统变量 mysqlx_lz4_max_client_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 8
最小值 0
最大值 16
服务器允许在 X 协议连接上使用 LZ4 算法的最大压缩级别。该范围与该算法的默认压缩级别相同。如果客户端请求比这更高的压缩级别,服务器将使用您在此处设置的级别。如果不指定此系统变量,服务器会将最大压缩级别设置为 8。
-
命令行格式 --mysqlx-max-allowed-packet=#
系统变量 mysqlx_max_allowed_packet
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 67108864
最小值 512
最大值 1073741824
单元 字节 X Plugin 可以接收的网络数据包的最大大小。当压缩用于连接时,此限制也适用,因此在消息被解压缩后网络数据包必须小于此大小。这是 X 插件等同于
max_allowed_packet
;有关详细信息,请参阅该变量描述。 -
命令行格式 --mysqlx-max-connections=#
系统变量 mysqlx_max_connections
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 100
最小值 1
最大值 65535
X Plugin 可以接受的最大并发客户端连接数。这是 X 插件等同于
max_connections
;有关详细信息,请参阅该变量描述。对于对此变量的修改,如果新值小于当前连接数,则仅对新连接考虑新限制。
-
命令行格式 --mysqlx-min-worker-threads=#
系统变量 mysqlx_min_worker_threads
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 2
最小值 1
最大值 100
X Plugin 用于处理客户端请求的最小工作线程数。
-
命令行格式 --mysqlx-port=port_num
系统变量 mysqlx_port
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 整数 默认值 33060
最小值 1
最大值 65535
X 插件侦听 TCP/IP 连接的网络端口。这是 X 插件等同于
port
;有关详细信息,请参阅该变量描述。 -
命令行格式 --mysqlx-port-open-timeout=#
系统变量 mysqlx_port_open_timeout
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 整数 默认值 0
最小值 0
最大值 120
单元 秒 X 插件等待 TCP/IP 端口空闲的秒数。
-
命令行格式 --mysqlx-read-timeout=#
系统变量 mysqlx_read_timeout
范围 会议 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 30
最小值 1
最大值 2147483
单元 秒 X 插件等待阻止读取操作完成的秒数。在此时间之后,如果读取操作不成功,X Plugin 将关闭连接并向客户端应用程序返回错误代码为 ER_IO_READ_ERROR的警告通知。
-
命令行格式 --mysqlx-socket=file_name
系统变量 mysqlx_socket
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 细绳 默认值 /tmp/mysqlx.sock
X 插件用于连接的 Unix 套接字文件的路径。此设置仅在 Unix 操作系统上运行时由 MySQL 服务器使用。客户端可以使用此套接字通过 X 插件连接到 MySQL 服务器。
默认
mysqlx_socket
路径和文件名基于 MySQL Server 主套接字文件的默认路径和文件名,并x
在文件名后附加一个。主套接字文件/tmp/mysql.sock
的默认路径和文件名是,因此 X 插件套接字文件的默认路径和文件名是/tmp/mysqlx.sock
。如果在服务器启动时使用
socket
系统变量为主套接字文件指定替代路径和文件名,这不会影响 X 插件套接字文件的默认值。在这种情况下,如果要将两个套接字存储在一个路径中,则还必须设置mysqlx_socket
系统变量。例如在一个配置文件中:socket=/home/sockets/mysqld/mysql.sock mysqlx_socket=/home/sockets/xplugin/xplugin.sock
如果您在编译时使用编译选项更改主套接字文件的默认路径和文件名
MYSQL_UNIX_ADDR
,这确实会影响 X 插件套接字文件的默认值,该文件是通过x
在MYSQL_UNIX_ADDR
文件名后附加 an 形成的。如果要在编译时为 X 插件套接字文件设置不同的默认值,请使用MYSQLX_UNIX_ADDR
编译选项。MYSQLX_UNIX_PORT
环境变量也可用于在服务器启动时为 X 插件套接字文件设置默认值(请参阅 第4.9 节,“环境变量”)。如果您设置此环境变量,它会覆盖编译后的MYSQLX_UNIX_ADDR
值,但会被该mysqlx_socket
值覆盖。 -
命令行格式 --mysqlx-ssl-ca=file_name
系统变量 mysqlx_ssl_ca
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 文件名 默认值 NULL
系统
mysqlx_ssl_ca
变量类似ssl_ca
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-capath=dir_name
系统变量 mysqlx_ssl_capath
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 目录名称 默认值 NULL
系统
mysqlx_ssl_capath
变量类似ssl_capath
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-cert=file_name
系统变量 mysqlx_ssl_cert
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 文件名 默认值 NULL
系统
mysqlx_ssl_cert
变量类似ssl_cert
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-cipher=name
系统变量 mysqlx_ssl_cipher
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 细绳 默认值 NULL
系统
mysqlx_ssl_cipher
变量类似ssl_cipher
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-crl=file_name
系统变量 mysqlx_ssl_crl
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 文件名 默认值 NULL
系统
mysqlx_ssl_crl
变量类似ssl_crl
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-crlpath=dir_name
系统变量 mysqlx_ssl_crlpath
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 目录名称 默认值 NULL
系统
mysqlx_ssl_crlpath
变量类似ssl_crlpath
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-ssl-key=file_name
系统变量 mysqlx_ssl_key
范围 全球的 动态的 不 SET_VAR
提示适用不 类型 文件名 默认值 NULL
系统
mysqlx_ssl_key
变量类似ssl_key
,只是它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 20.5.3 节,“使用 X 插件的加密连接”。 -
命令行格式 --mysqlx-wait-timeout=#
系统变量 mysqlx_wait_timeout
范围 会议 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 28800
最小值 1
最大值 2147483
单元 秒 X 插件等待连接活动的秒数。在此时间之后,如果读取操作不成功,X Plugin 将关闭连接。如果客户端是非交互式的,会话变量的初始值是从全局
mysqlx_wait_timeout
变量中复制的。对于交互式客户端,初始值是从会话中复制的mysqlx_interactive_timeout
。 -
命令行格式 --mysqlx-write-timeout=#
系统变量 mysqlx_write_timeout
范围 会议 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 60
最小值 1
最大值 2147483
单元 秒 X 插件等待阻止写入操作完成的秒数。在此时间之后,如果写入操作不成功,X Plugin 将关闭连接。
mysqlx_zstd_default_compression_level
命令行格式 --mysqlx_zstd_default_compression_level=#
介绍 8.0.20 系统变量 mysqlx_zstd_default_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 3
最小值 -131072
最大值 22
服务器用于 X 协议连接上的 zstd 算法的默认压缩级别。对于 1.4.0 版本的 zstd 库,您可以设置从 1 到 22 的正值(最高压缩效果),或设置负值,表示逐渐降低效果。值 0 转换为值 1。对于早期版本的 zstd 库,您只能指定值 3。如果客户端在能力协商期间不请求压缩级别,则使用此级别。如果不指定此系统变量,服务器将使用级别 3 作为默认值。有关详细信息,请参阅 第 20.5.5 节,“使用 X 插件进行连接压缩”.
mysqlx_zstd_max_client_compression_level
命令行格式 --mysqlx_zstd_max_client_compression_level=#
介绍 8.0.20 系统变量 mysqlx_zstd_max_client_compression_level
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 11
最小值 -131072
最大值 22
服务器允许在 X 协议连接上使用 zstd 算法的最大压缩级别。该范围与该算法的默认压缩级别相同。如果客户端请求比这更高的压缩级别,服务器将使用您在此处设置的级别。如果不指定此系统变量,则服务器将最大压缩级别设置为 11。