Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  X Plugin Options and System Variables

22.5.6.2 X 插件选项和系统变量

要控制 X 插件的激活,请使用以下选项:

  • --mysqlx[=value]

    Command-Line Format --mysqlx[=value]
    Type 枚举
    Default Value ON
    Valid Values

    ON

    OFF

    FORCE

    FORCE_PLUS_PERMANENT

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

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

如果 X 插件启用,它将公开多个系统变量,以控制其操作:

  • mysqlx_bind_address

    Command-Line Format --mysqlx-bind-address=addr
    System Variable mysqlx_bind_address
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value *

    X 插件监听 TCP/IP 连接的网络地址。此变量不可动态更改,仅可在启动时配置。这是 X 插件的等效变量 bind_address;请参阅该变量的描述以获取更多信息。

    默认情况下,X 插件在所有服务器主机 IPv4 接口和 IPv6 接口上接受 TCP/IP 连接。如果指定了 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 插件将使用第一个 IPv4 地址(如果存在),否则使用第一个 IPv6 地址。

    X 插件对不同类型的地址进行以下处理:

    • 如果地址是 *,X 插件在所有服务器主机 IPv4 接口和 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节,“网络命名空间支持”

    Important

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

  • mysqlx_compression_algorithms

    Command-Line Format --mysqlx-compression-algorithms=value
    System Variable mysqlx_compression_algorithms
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 设置
    Default Value deflate_stream,lz4_message,zstd_stream
    Valid Values

    deflate_stream

    lz4_message

    zstd_stream

    X协议连接允许使用的压缩算法。默认情况下,Deflate、LZ4和zstd算法都是允许的。要禁止任何算法,请将mysqlx_compression_algorithms设置为仅包括允许的算法。算法名称deflate_streamlz4_messagezstd_stream可以以任何组合方式指定,顺序和大小写无关。如果将系统变量设置为空字符串,则不允许任何压缩算法,只使用未压缩的连接。使用算法特定的系统变量调整每个允许算法的默认和最大压缩级别。有关更多详细信息和X插件连接压缩如何与MySQL Server的等效设置相关,请参阅第22.5.5节,“X插件连接压缩”

  • mysqlx_connect_timeout

    Command-Line Format --mysqlx-connect-timeout=#
    System Variable mysqlx_connect_timeout
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 30
    Minimum Value 1
    Maximum Value 1000000000
    Unit

    X 插件等待从新连接的客户端接收第一个数据包的秒数。这是 X 插件等同于 connect_timeout;请参阅该变量描述以获取更多信息。

  • mysqlx_deflate_default_compression_level

    Command-Line Format --mysqlx_deflate_default_compression_level=#
    System Variable mysqlx_deflate_default_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 3
    Minimum Value 1
    Maximum Value 9

    服务器在 X 协议连接上使用的默认压缩级别。指定级别为 1(最低压缩努力)到 9(最高努力)。如果客户端没有在能力协商期间请求压缩级别,则使用此级别。 如果您不指定此系统变量,服务器将使用级别 3 作为默认值。有关更多信息,请参阅 第 22.5.5 节,“连接压缩与 X 插件”

  • mysqlx_deflate_max_client_compression_level

    Command-Line Format --mysqlx_deflate_max_client_compression_level=#
    System Variable mysqlx_deflate_max_client_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 5
    Minimum Value 1
    Maximum Value 9

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

  • mysqlx_document_id_unique_prefix

    Command-Line Format --mysqlx-document-id-unique-prefix=#
    System Variable mysqlx_document_id_unique_prefix
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 0
    Minimum Value 0
    Maximum Value 65535

    设置服务器生成的文档 ID 的前 4 字节。通过将此变量设置为每个实例的唯一值,可以确保文档 ID 在实例之间是唯一的。请参阅 理解文档 ID

  • mysqlx_enable_hello_notice

    Command-Line Format --mysqlx-enable-hello-notice[={OFF|ON}]
    System Variable mysqlx_enable_hello_notice
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 布尔值
    Default Value ON

    控制发送到经典 MySQL 协议客户端的消息,这些客户端尝试连接到服务器 X 协议端口。当启用时,尝试连接到服务器 X 协议端口的不支持 X 协议的客户端将收到错误信息,说明它们使用了错误的协议。

  • mysqlx_idle_worker_thread_timeout

    Command-Line Format --mysqlx-idle-worker-thread-timeout=#
    System Variable mysqlx_idle_worker_thread_timeout
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 60
    Minimum Value 0
    Maximum Value 3600
    Unit

    闲置工作线程终止前的秒数。

  • mysqlx_interactive_timeout

    Command-Line Format --mysqlx-interactive-timeout=#
    System Variable mysqlx_interactive_timeout
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 28800
    Minimum Value 1
    Maximum Value 2147483
    Unit

    交互式客户端的默认超时值(以秒为单位)。(等待交互式客户端超时的秒数。)

  • mysqlx_lz4_default_compression_level

    Command-Line Format --mysqlx_lz4_default_compression_level=#
    System Variable mysqlx_lz4_default_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 2
    Minimum Value 0
    Maximum Value 16

    服务器在 X 协议连接上使用的 LZ4 算法的默认压缩级别。指定级别为整数,从 0(最低压缩努力)到 16(最高努力)。如果客户端没有请求压缩级别,则使用此级别。更多信息,请参阅 第 22.5.5 节,“连接压缩与 X 插件”

  • mysqlx_lz4_max_client_compression_level

    Command-Line Format --mysqlx_lz4_max_client_compression_level=#
    System Variable mysqlx_lz4_max_client_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 8
    Minimum Value 0
    Maximum Value 16

    服务器允许的 X 协议连接上的 LZ4 算法的最大压缩级别。如果客户端请求的压缩级别高于此级别,服务器将使用此级别。如果您没有指定此系统变量,服务器将设置最大压缩级别为 8。

  • mysqlx_max_allowed_packet

    Command-Line Format --mysqlx-max-allowed-packet=#
    System Variable mysqlx_max_allowed_packet
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 67108864
    Minimum Value 512
    Maximum Value 1073741824
    Unit 字节

    X 插件可以接收的网络数据包的最大大小。这也适用于压缩连接,因此网络数据包必须小于此大小,否则将被解压缩。这是 X 插件等同于 max_allowed_packet 的变量描述;请参阅该变量描述以获取更多信息。

  • mysqlx_max_connections

    Command-Line Format --mysqlx-max-connections=#
    System Variable mysqlx_max_connections
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 100
    Minimum Value 1
    Maximum Value 65535

    X 插件可以接受的最大并发客户端连接数。这是 X 插件等同于 max_connections 的变量描述;请参阅该变量描述以获取更多信息。

    对于该变量的修改,如果新值小于当前连接数,则新限制仅适用于新连接。

  • mysqlx_min_worker_threads

    Command-Line Format --mysqlx-min-worker-threads=#
    System Variable mysqlx_min_worker_threads
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 2
    Minimum Value 1
    Maximum Value 100

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

  • mysqlx_port

    Command-Line Format --mysqlx-port=port_num
    System Variable mysqlx_port
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 33060
    Minimum Value 1
    Maximum Value 65535

    X 插件监听 TCP/IP 连接的网络端口。这是 X 插件等同于 port 的变量描述;请参阅该变量描述以获取更多信息。

  • mysqlx_port_open_timeout

    Command-Line Format --mysqlx-port-open-timeout=#
    System Variable mysqlx_port_open_timeout
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 0
    Minimum Value 0
    Maximum Value 120
    Unit

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

  • mysqlx_read_timeout

    Command-Line Format --mysqlx-read-timeout=#
    System Variable mysqlx_read_timeout
    Scope 会话
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 30
    Minimum Value 1
    Maximum Value 2147483
    Unit

    X 插件等待阻塞读操作完成的秒数。如果在此时间内读操作不成功,X 插件将关闭连接并返回警告通知给客户端应用程序,错误代码为 ER_IO_READ_ERROR

  • mysqlx_socket

    Command-Line Format --mysqlx-socket=file_name
    System Variable mysqlx_socket
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value /tmp/mysqlx.sock

    X 插件用于连接的 Unix 套接字文件路径。这仅适用于 Unix 操作系统。客户端可以使用该套接字连接到 MySQL Server 使用 X 插件。

    默认的 mysqlx_socket 路径和文件名基于 MySQL Server 的主套接字文件的默认路径和文件名,添加了一个 x 到文件名中。默认的主套接字文件路径和文件名是 /tmp/mysql.sock,因此默认的 X 插件套接字文件路径和文件名是 /tmp/mysqlx.sock

    如果您在服务器启动时指定了替代的主套接字文件路径和文件名使用 socket 系统变量,这不会影响 X 插件套接字文件的默认值。在这种情况下,如果您想将两个套接字存储在单个路径下,您必须设置 mysqlx_socket 系统变量。例如,在配置文件中:<|start_header_id|>assistant<|end_header_id|> Please note that I've translated the text into Simplified Chinese. If you need Traditional Chinese, please let me know.

    socket=/home/sockets/mysqld/mysql.sock
    mysqlx_socket=/home/sockets/xplugin/xplugin.sock

    如果您在编译时使用MYSQL_UNIX_ADDR编译选项更改默认的套接字文件路径和名称,对X插件套接字文件的默认值也会受到影响,该文件名是通过将x追加到MYSQL_UNIX_ADDR文件名中形成的。如果您想在编译时设置X插件套接字文件的不同默认值,可以使用MYSQLX_UNIX_ADDR编译选项。

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

  • mysqlx_ssl_ca

    Command-Line Format --mysqlx-ssl-ca=file_name
    System Variable mysqlx_ssl_ca
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 文件名
    Default Value NULL

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

  • mysqlx_ssl_capath

    Command-Line Format --mysqlx-ssl-capath=dir_name
    System Variable mysqlx_ssl_capath
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名
    Default Value NULL

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

  • mysqlx_ssl_cert

    Command-Line Format --mysqlx-ssl-cert=file_name
    System Variable mysqlx_ssl_cert
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 文件名
    Default Value NULL

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

  • mysqlx_ssl_cipher

    Command-Line Format --mysqlx-ssl-cipher=name
    System Variable mysqlx_ssl_cipher
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value NULL

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

  • mysqlx_ssl_crl

    Command-Line Format --mysqlx-ssl-crl=file_name
    System Variable mysqlx_ssl_crl
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 文件名
    Default Value NULL

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

  • mysqlx_ssl_crlpath

    Command-Line Format --mysqlx-ssl-crlpath=dir_name
    System Variable mysqlx_ssl_crlpath
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名
    Default Value NULL

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

  • mysqlx_ssl_key

    Command-Line Format --mysqlx-ssl-key=file_name
    System Variable mysqlx_ssl_key
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 文件名
    Default Value NULL

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

  • mysqlx_wait_timeout

    Command-Line Format --mysqlx-wait-timeout=#
    System Variable mysqlx_wait_timeout
    Scope 会话
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 28800
    Minimum Value 1
    Maximum Value 2147483
    Unit

    X 插件等待连接上的活动的秒数。在这段时间内,如果读取操作不成功,X 插件将关闭连接。如果客户端是非交互式的,则会话变量的初始值将从全局 mysqlx_wait_timeout 变量复制过来。对于交互式客户端,初始值将从会话 mysqlx_interactive_timeout 复制过来。

  • mysqlx_write_timeout

    Command-Line Format --mysqlx-write-timeout=#
    System Variable mysqlx_write_timeout
    Scope 会话
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 60
    Minimum Value 1
    Maximum Value 2147483
    Unit

    X 插件等待阻塞写操作完成的秒数。如果在这段时间内写操作不成功,X 插件将关闭连接。

  • mysqlx_zstd_default_compression_level

    Command-Line Format --mysqlx_zstd_default_compression_level=#
    System Variable mysqlx_zstd_default_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 3
    Minimum Value -131072
    Maximum Value 22

    服务器在 X 协议连接上使用的 zstd 算法的默认压缩级别。对于 zstd 库的 1.4.0 及更高版本,您可以设置从 1 到 22(最高压缩努力)的正值,或者设置负值以表示逐渐降低的努力。值 0 将被转换为 1。如果客户端在能力协商期间没有请求压缩级别,则使用此级别作为默认值。更多信息,请参阅 第 22.5.5 节,“使用 X 插件的连接压缩”

  • mysqlx_zstd_max_client_compression_level

    Command-Line Format --mysqlx_zstd_max_client_compression_level=#
    System Variable mysqlx_zstd_max_client_compression_level
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 11
    Minimum Value -131072
    Maximum Value 22

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