文档主页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  X 插件选项和系统变量

22.5.6.2 X 插件选项和系统变量

要控制 X 插件的激活,请使用此选项

  • --mysqlx[=value]

    命令行格式 --mysqlx[=value]
    类型 枚举
    默认值 ON
    有效值

    ON

    OFF

    FORCE

    FORCE_PLUS_PERMANENT

    此选项控制服务器在启动时如何加载 X 插件。在 MySQL 9.0 中,X 插件默认启用,但可以使用此选项控制其激活状态。

    选项值应为插件加载选项中可用的值之一,如 第 7.6.1 节,“安装和卸载插件” 中所述。

如果 X 插件已启用,它会公开一些系统变量,允许控制其操作

  • mysqlx_bind_address

    命令行格式 --mysqlx-bind-address=addr
    系统变量 mysqlx_bind_address
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 *

    X 插件侦听 TCP/IP 连接的网络地址。此变量不是动态的,只能在启动时配置。这是 X 插件等同于 bind_address 系统变量;有关更多信息,请参阅该变量描述。

    默认情况下,X 插件在所有服务器主机 IPv4 接口上接受 TCP/IP 连接,如果服务器主机支持 IPv6,则在所有 IPv6 接口上接受 TCP/IP 连接。如果指定了 mysqlx_bind_address,其值必须满足以下要求

    • 单个地址值,可以指定单个非通配符 IP 地址(IPv4 或 IPv6),或主机名,或允许侦听多个网络接口的通配符地址格式之一(*0.0.0.0::)。

    • 逗号分隔值的列表。当变量命名多个值的列表时,每个值必须指定单个非通配符 IP 地址(IPv4 或 IPv6)或主机名。通配符地址格式(*0.0.0.0::)不允许在值列表中使用。

    • 该值还可以包含网络命名空间说明符。

    IP 地址可以指定为 IPv4 或 IPv6 地址。对于任何主机名的值,X 插件会将名称解析为 IP 地址并绑定到该地址。如果主机名解析为多个 IP 地址,X 插件将使用第一个 IPv4 地址(如果有),否则使用第一个 IPv6 地址。

    X 插件处理不同类型的地址如下

    • 如果地址为 *,X 插件将在所有服务器主机 IPv4 接口上接受 TCP/IP 连接,如果服务器主机支持 IPv6,则在所有 IPv6 接口上接受 TCP/IP 连接。使用此地址允许 X 插件进行 IPv4 和 IPv6 连接。此值为默认值。如果变量指定了多个值的列表,则不允许使用此值。

    • 如果地址为 0.0.0.0,X 插件将在所有服务器主机 IPv4 接口上接受 TCP/IP 连接。如果变量指定了多个值的列表,则不允许使用此值。

    • 如果地址为 ::,X 插件将在所有服务器主机 IPv4 和 IPv6 接口上接受 TCP/IP 连接。如果变量指定了多个值的列表,则不允许使用此值。

    • 如果地址为 IPv4 映射地址,X 插件将接受该地址的 TCP/IP 连接,无论是 IPv4 还是 IPv6 格式。例如,如果 X 插件绑定到 ::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 插件将仅接受该 IPv4 或 IPv6 地址的 TCP/IP 连接。

    以下规则适用于为地址指定网络命名空间

    • 可以为 IP 地址或主机名指定网络命名空间。

    • 不能为通配符 IP 地址指定网络命名空间。

    • 对于给定地址,网络命名空间是可选的。如果给出,则必须将其指定为地址后紧随其后的 /ns 后缀。

    • 没有 /ns 后缀的地址使用主机系统全局命名空间。因此,全局命名空间是默认值。

    • 具有 /ns 后缀的地址使用名为 ns 的命名空间。

    • 主机系统必须支持网络命名空间,并且每个命名的命名空间都必须事先设置。命名不存在的命名空间会导致错误。

    • 如果变量值指定了多个地址,则可以包含全局命名空间中的地址、命名命名空间中的地址或二者的组合。

    有关网络命名空间的更多信息,请参阅 第 7.1.14 节,“网络命名空间支持”

    重要

    由于 X 插件不是强制插件,因此如果指定地址或地址列表中存在错误,它不会阻止服务器启动(与 MySQL 服务器对 bind_address 错误的做法不同)。对于 X 插件,如果列出的地址之一无法解析或 X 插件无法绑定到该地址,则会跳过该地址,记录错误消息,并尝试绑定到列表中剩余的每个地址。X 插件的 Mysqlx_address 状态变量仅显示列表中绑定成功的地址。如果列出的地址中没有一个导致成功绑定,或者单个指定的地址失败,X 插件将记录错误消息 ER_XPLUGIN_FAILED_TO_PREPARE_IO_INTERFACES,指出无法使用 X 协议。 mysqlx_bind_address 不是动态的,因此要解决任何问题,您必须停止服务器,更正系统变量值,然后重新启动服务器。

  • mysqlx_compression_algorithms

    命令行格式 --mysqlx-compression-algorithms=value
    系统变量 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_streamlz4_messagezstd_stream 可以以任何组合指定,顺序和大小写无关紧要。如果将系统变量设置为空字符串,则不允许使用任何压缩算法,并且仅使用未压缩的连接。使用特定于算法的系统变量来调整每个允许算法的默认和最大压缩级别。有关更多详细信息以及 X 协议的连接压缩如何与 MySQL 服务器的等效设置相关联的信息,请参阅 第 22.5.5 节,“使用 X 插件进行连接压缩”

  • mysqlx_connect_timeout

    命令行格式 --mysqlx-connect-timeout=#
    系统变量 mysqlx_connect_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 1
    最大值 1000000000
    单位

    连接新客户端时,X 插件等待第一个数据包到达的秒数。这相当于 connect_timeout 的 X 插件;有关详细信息,请参阅该变量描述。

  • mysqlx_deflate_default_compression_level

    命令行格式 --mysqlx_deflate_default_compression_level=#
    系统变量 mysqlx_deflate_default_compression_level
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 3
    最小值 1
    最大值 9

    服务器在 X 协议连接上对 Deflate 算法使用的默认压缩级别。将级别指定为 1(最低压缩量)到 9(最高压缩量)之间的整数。如果客户端在功能协商期间未请求压缩级别,则使用此级别。如果未指定此系统变量,则服务器使用级别 3 作为默认值。有关详细信息,请参阅 第 22.5.5 节,“使用 X 插件进行连接压缩”

  • mysqlx_deflate_max_client_compression_level

    命令行格式 --mysqlx_deflate_max_client_compression_level=#
    系统变量 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

    命令行格式 --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=#
    系统变量 mysqlx_interactive_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 28800
    最小值 1
    最大值 2147483
    单位

    交互式客户端的 mysqlx_wait_timeout 会话变量的默认值。(等待交互式客户端超时的时间(秒)。)

  • mysqlx_lz4_default_compression_level

    命令行格式 --mysqlx_lz4_default_compression_level=#
    系统变量 mysqlx_lz4_default_compression_level
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 2
    最小值 0
    最大值 16

    服务器在 X 协议连接上对 LZ4 算法使用的默认压缩级别。将级别指定为 0(最低压缩量)到 16(最高压缩量)之间的整数。如果客户端在功能协商期间未请求压缩级别,则使用此级别。如果未指定此系统变量,则服务器使用级别 2 作为默认值。有关详细信息,请参阅 第 22.5.5 节,“使用 X 插件进行连接压缩”

  • mysqlx_lz4_max_client_compression_level

    命令行格式 --mysqlx_lz4_max_client_compression_level=#
    系统变量 mysqlx_lz4_max_client_compression_level
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 8
    最小值 0
    最大值 16

    服务器在 X 协议连接上允许的 LZ4 算法的最大压缩级别。范围与该算法的默认压缩级别相同。如果客户端请求的压缩级别高于此级别,则服务器将使用此处设置的级别。如果未指定此系统变量,则服务器将最大压缩级别设置为 8。

  • mysqlx_max_allowed_packet

    命令行格式 --mysqlx-max-allowed-packet=#
    系统变量 mysqlx_max_allowed_packet
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 67108864
    最小值 512
    最大值 1073741824
    单位 字节

    X 插件可以接收的网络数据包的最大大小。此限制也适用于使用连接压缩的情况,因此网络数据包必须小于此大小,在消息解压缩后。这相当于 max_allowed_packet 的 X 插件;有关详细信息,请参阅该变量描述。

  • mysqlx_max_connections

    命令行格式 --mysqlx-max-connections=#
    系统变量 mysqlx_max_connections
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 100
    最小值 1
    最大值 65535

    X 插件可以接受的最大并发客户端连接数。这相当于 max_connections 的 X 插件;有关详细信息,请参阅该变量描述。

    对于此变量的修改,如果新值小于当前连接数,则新限制仅对新连接生效。

  • mysqlx_min_worker_threads

    命令行格式 --mysqlx-min-worker-threads=#
    系统变量 mysqlx_min_worker_threads
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 2
    最小值 1
    最大值 100

    X 插件用于处理客户端请求的最小工作线程数。

  • mysqlx_port

    命令行格式 --mysqlx-port=port_num
    系统变量 mysqlx_port
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 33060
    最小值 1
    最大值 65535

    X 插件监听 TCP/IP 连接的网络端口。这相当于 port 的 X 插件;有关详细信息,请参阅该变量描述。

  • mysqlx_port_open_timeout

    命令行格式 --mysqlx-port-open-timeout=#
    系统变量 mysqlx_port_open_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 0
    最小值 0
    最大值 120
    单位

    X 插件等待 TCP/IP 端口变为可用的秒数。

  • mysqlx_read_timeout

    命令行格式 --mysqlx-read-timeout=#
    系统变量 mysqlx_read_timeout
    范围 会话
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 1
    最大值 2147483
    单位

    X 插件等待阻塞读取操作完成的秒数。经过此时间后,如果读取操作未成功,X 插件将关闭连接并返回一个带有错误代码 ER_IO_READ_ERROR 的警告通知到客户端应用程序。

  • mysqlx_socket

    命令行格式 --mysqlx-socket=file_name
    系统变量 mysqlx_socket
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 /tmp/mysqlx.sock

    X 插件用于连接的 Unix 套接字文件的路径。此设置仅在 MySQL 服务器在 Unix 操作系统上运行时使用。客户端可以使用此套接字通过 X 插件连接到 MySQL 服务器。

    默认的 mysqlx_socket 路径和文件名基于 MySQL 服务器主套接字文件的默认路径和文件名,并在文件名末尾添加一个 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 插件套接字文件的默认值,该默认值是通过在 MYSQL_UNIX_ADDR 文件名末尾添加一个 x 形成的。如果希望在编译时为 X 插件套接字文件设置不同的默认值,请使用 MYSQLX_UNIX_ADDR 编译选项。

    还可以使用 MYSQLX_UNIX_PORT 环境变量在服务器启动时为 X 插件套接字文件设置默认值(参阅 第 6.9 节,“环境变量”)。如果设置了此环境变量,它将覆盖编译的 MYSQLX_UNIX_ADDR 值,但会被 mysqlx_socket 值覆盖。

  • mysqlx_ssl_ca

    命令行格式 --mysqlx-ssl-ca=file_name
    系统变量 mysqlx_ssl_ca
    范围 全局
    动态
    SET_VAR 提示适用
    类型 文件名
    默认值 NULL

    mysqlx_ssl_ca 系统变量类似于 ssl_ca,但它适用于 X 插件而不是 MySQL 服务器主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X 插件进行加密连接”

  • mysqlx_ssl_capath

    命令行格式 --mysqlx-ssl-capath=dir_name
    系统变量 mysqlx_ssl_capath
    范围 全局
    动态
    SET_VAR 提示适用
    类型 目录名
    默认值 NULL

    mysqlx_ssl_capath 系统变量类似于 ssl_capath,但它适用于 X 插件而不是 MySQL 服务器主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X 插件进行加密连接”

  • mysqlx_ssl_cert

    命令行格式 --mysqlx-ssl-cert=file_name
    系统变量 mysqlx_ssl_cert
    范围 全局
    动态
    SET_VAR 提示适用
    类型 文件名
    默认值 NULL

    mysqlx_ssl_cert 系统变量类似于 ssl_cert,但它适用于 X 插件而不是 MySQL 服务器主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X 插件进行加密连接”

  • mysqlx_ssl_cipher

    命令行格式 --mysqlx-ssl-cipher=name
    系统变量 mysqlx_ssl_cipher
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    mysqlx_ssl_cipher 系统变量类似于 ssl_cipher,但它适用于 X 插件而不是 MySQL 服务器主连接接口。有关为 X 插件配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X 插件进行加密连接”

  • mysqlx_ssl_crl

    命令行格式 --mysqlx-ssl-crl=file_name
    系统变量 mysqlx_ssl_crl
    范围 全局
    动态
    SET_VAR 提示适用
    类型 文件名
    默认值 NULL

    系统变量 mysqlx_ssl_crlssl_crl 类似,区别在于它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X Plugin 配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X Plugin 的加密连接”

  • mysqlx_ssl_crlpath

    命令行格式 --mysqlx-ssl-crlpath=dir_name
    系统变量 mysqlx_ssl_crlpath
    范围 全局
    动态
    SET_VAR 提示适用
    类型 目录名
    默认值 NULL

    系统变量 mysqlx_ssl_crlpathssl_crlpath 类似,区别在于它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X Plugin 配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X Plugin 的加密连接”

  • mysqlx_ssl_key

    命令行格式 --mysqlx-ssl-key=file_name
    系统变量 mysqlx_ssl_key
    范围 全局
    动态
    SET_VAR 提示适用
    类型 文件名
    默认值 NULL

    系统变量 mysqlx_ssl_keyssl_key 类似,区别在于它适用于 X Plugin 而不是 MySQL Server 主连接接口。有关为 X Plugin 配置加密支持的信息,请参阅 第 22.5.3 节,“使用 X Plugin 的加密连接”

  • mysqlx_wait_timeout

    命令行格式 --mysqlx-wait-timeout=#
    系统变量 mysqlx_wait_timeout
    范围 会话
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 28800
    最小值 1
    最大值 2147483
    单位

    X Plugin 在连接上等待活动的时间(以秒为单位)。在此时间之后,如果读取操作不成功,X Plugin 会关闭连接。如果客户端是非交互式的,则会话变量的初始值将从全局 mysqlx_wait_timeout 变量复制而来。对于交互式客户端,初始值将从会话 mysqlx_interactive_timeout 复制而来。

  • mysqlx_write_timeout

    命令行格式 --mysqlx-write-timeout=#
    系统变量 mysqlx_write_timeout
    范围 会话
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 60
    最小值 1
    最大值 2147483
    单位

    X Plugin 等待阻塞写入操作完成的时间(以秒为单位)。在此时间之后,如果写入操作不成功,X Plugin 会关闭连接。

  • mysqlx_zstd_default_compression_level

    命令行格式 --mysqlx_zstd_default_compression_level=#
    系统变量 mysqlx_zstd_default_compression_level
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 3
    最小值 -131072
    最大值 22

    服务器在 X 协议连接上使用 zstd 算法时的默认压缩级别。对于 1.4.0 及更高版本的 zstd 库,您可以设置 1 到 22 之间的正值(最高压缩力度),或表示逐步降低力度的负值。值 0 将转换为值 1。对于早期版本的 zstd 库,您只能指定值 3。如果客户端在功能协商期间未请求压缩级别,则使用此级别。如果您未指定此系统变量,则服务器使用级别 3 作为默认值。有关更多信息,请参阅 第 22.5.5 节,“使用 X Plugin 的连接压缩”

  • mysqlx_zstd_max_client_compression_level

    命令行格式 --mysqlx_zstd_max_client_compression_level=#
    系统变量 mysqlx_zstd_max_client_compression_level
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 11
    最小值 -131072
    最大值 22

    服务器允许在 X 协议连接上使用 zstd 算法时的最大压缩级别。范围与该算法的默认压缩级别相同。如果客户端请求的压缩级别高于此级别,则服务器使用您在此处设置的级别。如果您未指定此系统变量,则服务器将最大压缩级别设置为 11。