### 5.1.8 服务器系统变量

[](<>)[](<>)[](<>)

MySQL 服务器维护许多配置其操作的系统变量。每个系统变量都有一个默认值。可以在服务器启动时使用命令行或选项文件中的选项设置系统变量。它们中的大多数可以在运行时使用[`放`](set-variable.html)语句，它使您能够修改服务器的操作，而无需停止并重新启动它。您还可以在表达式中使用系统变量值。

设置全局系统变量运行时值通常需要[`SYSTEM_VARIABLES_ADMIN`](privileges-provided.html#priv_system-variables-admin)特权（或已弃用的[`极好的`](privileges-provided.html#priv_super)特权）。设置会话系统运行时变量值通常不需要特殊权限，并且可以由任何用户完成，但也有例外。有关详细信息，请参阅[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html)

有几种方法可以查看系统变量的名称和值：

-   要查看服务器根据其编译默认值和它读取的任何选项文件使用的值，请使用以下命令：

    ```
    mysqld --verbose --help
    ```

-   要查看服务器仅根据其编译默认值使用的值，忽略任何选项文件中的设置，请使用以下命令：

    ```
    mysqld --no-defaults --verbose --help
    ```

-   要查看正在运行的服务器使用的当前值，请使用[`显示变量`](show-variables.html)语句或 Performance Schema 系统变量表。看[第 27.12.14 节，“性能模式系统变量表”](performance-schema-system-variable-tables.html).

    本节提供每个系统变量的描述。有关系统变量汇总表，请参见[第 5.1.5 节，“服务器系统变量参考”](server-system-variable-reference.html).有关系统变量操作的更多信息，请参见[第 5.1.9 节，“使用系统变量”](using-system-variables.html).

    有关其他系统变量信息，请参阅以下部分：

-   [第 5.1.9 节，“使用系统变量”](using-system-variables.html)，讨论用于设置和显示系统变量值的语法。

-   [第 5.1.9.2 节，“动态系统变量”](dynamic-system-variables.html), 列出了可以在运行时设置的变量。

-   有关调整系统变量的信息，请参见[第 5.1.1 节，“配置服务器”](server-configuration.html).

-   [第 15.14 节，“InnoDB 启动选项和系统变量”](innodb-parameters.html), 列出`InnoDB`系统变量。

-   [第 23.4.3.9.2 节，“NDB 集群系统变量”](mysql-cluster-options-variables.html#mysql-cluster-system-variables)，列出特定于 NDB Cluster 的系统变量。

-   有关特定于复制的服务器系统变量的信息，请参阅[第 17.1.6 节，“复制和二进制日志记录选项和变量”](replication-options.html).

笔记

以下一些变量描述涉及“启用”或“禁用”变量。这些变量可以通过[`放`](set-variable.html)通过将它们设置为`在`要么`1`，或通过将它们设置为禁用`离开`要么`0`.布尔变量可以在启动时设置为值`在`,`真的`,`离开`， 和`错误的`（不区分大小写），以及`1`和`0`.看[第 4.2.2.4 节，“程序选项修饰符”](option-modifiers.html).

一些系统变量控制缓冲区或高速缓存的大小。对于给定的缓冲区，服务器可能需要分配内部数据结构。这些结构通常是从分配给缓冲区的总内存中分配的，所需的空间量可能取决于平台。这意味着当您为控制缓冲区大小的系统变量分配值时，实际可用的空间量可能与分配的值不同。在某些情况下，金额可能小于分配的值。服务器也可能向上调整一个值。例如，如果将值 0 分配给最小值为 1024 的变量，则服务器将该值设置为 1024。

除非另有说明，否则缓冲区大小、长度和堆栈大小的值以字节为单位。

一些系统变量采用文件名值。除非另有说明，否则如果值为相对路径名，则默认文件位置是数据目录。要明确指定位置，请使用绝对路径名。假设数据目录是`/var/mysql/数据`.如果将文件值变量作为相对路径名给出，则它位于`/var/mysql/数据`.如果该值是绝对路径名，则其位置由路径名给出。

-   [](<>) [`activate_all_roles_on_login`](server-system-variables.html#sysvar_activate_all_roles_on_login)

    [](<>)[](<>)

    | 命令行格式 | `--activate-all-roles-on-login[={OFF|ON}]` |
    | ----- | ------------------------------------------ |
    | 系统变量 | `[activate_all_roles_on_login]（服务器系统变量.html#sysvar_activate_all_roles_on_login）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    用户登录服务器时是否启用自动激活所有授予的角色：

    -   如果[`activate_all_roles_on_login`](server-system-variables.html#sysvar_activate_all_roles_on_login)启用后，服务器会在登录时激活授予每个帐户的所有角色。这优先于使用指定的默认角色[`设置默认角色`](set-default-role.html).

    -   如果[`activate_all_roles_on_login`](server-system-variables.html#sysvar_activate_all_roles_on_login)被禁用，服务器激活指定的默认角色[`设置默认角色`](set-default-role.html)，如果有的话，在登录时。

        授予的角色包括明确授予用户的角色和在[`强制角色`](server-system-variables.html#sysvar_mandatory_roles)系统变量值。

    [`activate_all_roles_on_login`](server-system-variables.html#sysvar_activate_all_roles_on_login)仅适用于登录时，以及在定义器上下文中执行的存储程序和视图执行开始时。要更改会话中的活动角色，请使用[`设定角色`](set-role.html).要更改存储程序的活动角色，程序主体应执行[`设定角色`](set-role.html).

-   [](<>) [`管理员地址`](server-system-variables.html#sysvar_admin_address)

    [](<>)[](<>)

    | 命令行格式 | `--admin-address=addr` |
    | ----- | ---------------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[admin_address](server-system-variables.html#sysvar_admin_address)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |

    在管理网络接口上侦听 TCP/IP 连接的 IP 地址（请参阅[第 5.1.12.1 节，“连接接口”](connection-interfaces.html)）。没有默认值[`管理员地址`](server-system-variables.html#sysvar_admin_address)价值。如果在启动时未指定此变量，则服务器不维护管理界面。服务器还有一个[`绑定地址`](server-system-variables.html#sysvar_bind_address)用于配置常规（非管理）客户端 TCP/IP 连接的系统变量。看[第 5.1.12.1 节，“连接接口”](connection-interfaces.html).

    如果[`管理员地址`](server-system-variables.html#sysvar_admin_address)已指定，其值必须满足以下要求：

    -   该值必须是单个 IPv4 地址、IPv6 地址或主机名。

    -   该值不能指定通配符地址格式 (`*`,`0.0.0.0`， 要么`::`）。

    -   从 MySQL 8.0.22 开始，该值可能包含网络命名空间说明符。

        IP 地址可以指定为 IPv4 或 IPv6 地址。如果该值是主机名，则服务器将该名称解析为 IP 地址并绑定到该地址。如果主机名解析为多个 IP 地址，则服务器使用第一个 IPv4 地址（如果有），否则使用第一个 IPv6 地址。

        服务器处理不同类型的地址如下：

    -   如果地址是 IPv4 映射地址，则服务器接受该地址的 TCP/IP 连接，采用 IPv4 或 IPv6 格式。例如，如果服务器绑定到`::ffff:127.0.0.1`, 客户端可以使用`--主机=127.0.0.1`要么`--主机=::ffff:127.0.0.1`.

    -   如果地址是“常规”IPv4 或 IPv6 地址（例如`127.0.0.1`要么`::1`)，服务器只接受该 IPv4 或 IPv6 地址的 TCP/IP 连接。

        这些规则适用于为地址指定网络命名空间：

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

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

    -   对于给定的地址，网络命名空间是可选的。如果给出，它必须被指定为`/*`ns`*`紧跟地址的后缀。

    -   没有的地址`/*`ns`*`suffix 使用主机系统全局命名空间。因此全局命名空间是默认的。

    -   一个地址`/*`ns`*`suffix 使用命名空间命名*`ns`*.

    -   主机系统必须支持网络命名空间，并且每个命名的命名空间都必须事先设置。命名一个不存在的命名空间会产生错误。

        有关网络命名空间的更多信息，请参阅[第 5.1.14 节，“网络命名空间支持”](network-namespace-support.html).

        如果绑定到地址失败，服务器会产生错误并且不会启动。

        这[`管理员地址`](server-system-variables.html#sysvar_admin_address)系统变量类似于[`绑定地址`](server-system-variables.html#sysvar_bind_address)将服务器绑定到普通客户端连接的地址的系统变量，但有以下区别：

    -   [`绑定地址`](server-system-variables.html#sysvar_bind_address)允许多个地址。[`管理员地址`](server-system-variables.html#sysvar_admin_address)允许单个地址。

    -   [`绑定地址`](server-system-variables.html#sysvar_bind_address)允许通配符地址。[`管理员地址`](server-system-variables.html#sysvar_admin_address)才不是。

-   [](<>) [`管理员端口`](server-system-variables.html#sysvar_admin_port)

    [](<>)[](<>)

    | 命令行格式 | `--admin-port=port_num` |
    | ----- | ----------------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[admin_port]（服务器系统变量.html#sysvar_admin_port）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `33062` |
    | 最小值 | `0` |
    | 最大值 | `65535` |

    用于管理网络接口上的连接的 TCP/IP 端口号（请参阅[第 5.1.12.1 节，“连接接口”](connection-interfaces.html)）。将此变量设置为 0 会导致使用默认值。

    环境[`管理员端口`](server-system-variables.html#sysvar_admin_port)如果没有效果[`管理员地址`](server-system-variables.html#sysvar_admin_address)未指定，因为在这种情况下，服务器不维护管理网络接口。

-   [](<>) [`admin_ssl_ca`](server-system-variables.html#sysvar_admin_ssl_ca)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-ca=file_name` |
    | ----- | -------------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_ca]（服务器系统变量.html#sysvar_admin_ssl_ca）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `空值` |

    这[`admin_ssl_ca`](server-system-variables.html#sysvar_admin_ssl_ca)系统变量就像[`ssl_ca`](server-system-variables.html#sysvar_ssl_ca), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_capath`](server-system-variables.html#sysvar_admin_ssl_capath)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-capath=目录名` |
    | ----- | ------------------------ |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_capath]（服务器系统变量.html#sysvar_admin_ssl_capath）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |
    | 默认值 | `空值` |

    这[`admin_ssl_capath`](server-system-variables.html#sysvar_admin_ssl_capath)系统变量就像[`ssl_capath`](server-system-variables.html#sysvar_ssl_capath), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_cert`](server-system-variables.html#sysvar_admin_ssl_cert)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-cert=file_name` |
    | ----- | ---------------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_cert]（服务器系统变量.html#sysvar_admin_ssl_cert）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `空值` |

    这[`admin_ssl_cert`](server-system-variables.html#sysvar_admin_ssl_cert)系统变量就像[`ssl_cert`](server-system-variables.html#sysvar_ssl_cert), 只是它适用于管理连接界面而不是主连接界面。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_cipher`](server-system-variables.html#sysvar_admin_ssl_cipher)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-cipher=名称` |
    | ----- | ----------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_cipher]（服务器系统变量.html#sysvar_admin_ssl_cipher）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空值` |

    这[`admin_ssl_cipher`](server-system-variables.html#sysvar_admin_ssl_cipher)系统变量就像[`ssl_cipher`](server-system-variables.html#sysvar_ssl_cipher), 只是它适用于管理连接界面而不是主连接界面。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_crl`](server-system-variables.html#sysvar_admin_ssl_crl)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-crl=文件名` |
    | ----- | --------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_crl]（服务器系统变量.html#sysvar_admin_ssl_crl）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `空值` |

    这[`admin_ssl_crl`](server-system-variables.html#sysvar_admin_ssl_crl)系统变量就像[`ssl_crl`](server-system-variables.html#sysvar_ssl_crl), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_crlpath`](server-system-variables.html#sysvar_admin_ssl_crlpath)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-crlpath=dir_name` |
    | ----- | ------------------------------ |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_crlpath]（服务器系统变量.html#sysvar_admin_ssl_crlpath）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |
    | 默认值 | `空值` |

    这[`admin_ssl_crlpath`](server-system-variables.html#sysvar_admin_ssl_crlpath)系统变量就像[`ssl_crlpath`](server-system-variables.html#sysvar_ssl_crlpath), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_ssl_key`](server-system-variables.html#sysvar_admin_ssl_key)

    [](<>)[](<>)

    | 命令行格式 | `--admin-ssl-key=文件名` |
    | ----- | --------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_ssl_key]（服务器系统变量.html#sysvar_admin_ssl_key）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `空值` |

    这[`admin_ssl_key`](server-system-variables.html#sysvar_admin_ssl_key)系统变量就像[`ssl_key`](server-system-variables.html#sysvar_ssl_key), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_tls_ciphersuites`](server-system-variables.html#sysvar_admin_tls_ciphersuites)

    [](<>)[](<>)

    | 命令行格式 | `--admin-tls-ciphersuites=ciphersuite_list` |
    | ----- | ------------------------------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_tls_ciphersuites]（服务器系统变量.html#sysvar_admin_tls_ciphersuites）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空值` |

    这[`admin_tls_ciphersuites`](server-system-variables.html#sysvar_admin_tls_ciphersuites)系统变量就像[`tls_ciphersuites`](server-system-variables.html#sysvar_tls_ciphersuites), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

-   [](<>) [`admin_tls_version`](server-system-variables.html#sysvar_admin_tls_version)

    [](<>)[](<>)

    | 命令行格式 | `--admin-tls-version=protocol_list` |
    | ----- | ----------------------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[admin_tls_version]（服务器系统变量.html#sysvar_admin_tls_version）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值（≥ 8.0.28） | `TLSv1.2、TLSv1.3` |
    | 默认值（≥ 8.0.21，≤ 8.0.27） | `TLSv1、TLSv1.1、TLSv1.2、TLSv1.3` |

    这[`admin_tls_version`](server-system-variables.html#sysvar_admin_tls_version)系统变量就像[`tls_version`](server-system-variables.html#sysvar_tls_version), 只是它适用于管理连接接口而不是主连接接口。有关为管理界面配置加密支持的信息，请参阅[加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections).

    重要的

    -   自 MySQL 8.0.28 起，对 TLSv1 和 TLSv1.1 连接协议的支持已从 MySQL Server 中删除。该协议已从 MySQL 8.0.26 中弃用。看[删除对 TLSv1 和 TLSv1.1 协议的支持](encrypted-connection-protocols-ciphers.html#encrypted-connection-deprecated-protocols)了解更多信息。

    -   自 MySQL 8.0.16 起，MySQL Server 支持 TLSv1.3 协议，前提是 MySQL Server 是使用 OpenSSL 1.1.1 或更高版本编译的。服务器在启动时检查 OpenSSL 的版本，如果低于 1.1.1，则将 TLSv1.3 从系统变量的默认值中删除。在这种情况下，默认值为“`TLSv1、TLSv1.1、TLSv1.2`” 直到并包括 MySQL 8.0.27，以及 “`TLSv1.2`”来自 MySQL 8.0.28。

-   [](<>) [`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)

    [](<>)[](<>)

    | 命令行格式 | `--authentication-policy=值` |
    | ----- | --------------------------- |
    | 介绍 | 8.0.27 |
    | 系统变量 | `[authentication_policy]（服务器系统变量.html#sysvar_authentication_policy）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `*,,` |

    此变量用于管理多因素身份验证 (MFA) 功能。它适用于与认证因素相关的条款[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)用于管理 MySQL 帐户定义的语句，其中“因素”对应于与帐户关联的身份验证方法或插件：

    -   [`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)控制帐户可能具有的身份验证因素的数量。也就是说，它控制需要或允许哪些因素。

    -   [`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)还控制每个因素允许使用哪些插件（或方法）。

    -   [`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)， 和这个结合[`default_authentication_plugin`](server-system-variables.html#sysvar_default_authentication_plugin), 确定未明确命名插件的身份验证规范的默认身份验证插件。

        因为[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)仅在创建或更改帐户时适用，对其值的更改对现有用户帐户没有影响。

    笔记

    虽然[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)系统变量对与认证相关的子句施加了某些约束[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)语句，具有[`AUTHENTICATION_POLICY_ADMIN`](privileges-provided.html#priv_authentication-policy-admin)特权不受约束。（对于否则不允许的语句，确实会出现警告。）

    的价值[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)是由 1、2 或 3 个逗号分隔的元素组成的列表。存在的每个元素都可以是身份验证插件名称、星号 (`*`)、为空或丢失。（例外：元素 1 不能为空或缺失。）在所有情况下，元素都可以被空白字符包围，整个列表用单引号括起来。

    为元素指定的值的类型*`ñ`*列表中是否对因素有影响*`ñ`*必须存在于帐户定义中，并且可以使用哪些身份验证插件：

    -   如果元素*`ñ`*是一个身份验证插件名称，一个因素的身份验证方法*`ñ`*是必需的，并且必须使用指定的插件。

        此外，该插件成为factor的默认插件*`ñ`*未明确命名插件的身份验证方法。有关详细信息，请参阅[默认身份验证插件](pluggable-authentication.html#pluggable-authentication-default-plugin).

        使用内部凭证存储的身份验证插件只能为第一个元素指定，不能重复。例如，不允许以下设置：

        -   `authenication_policy = 'caching_sha2_password, sha256_password'`

        -   `authentication_policy = 'caching_sha2_password，authetication_fido，sha256_password'`

    -   如果元素*`ñ`*是一个星号 (`*`)，一种因子的认证方法*`ñ`*是必须的。它可以使用任何对元素有效的身份验证插件*`ñ`*（如后所述）。

    -   如果元素*`ñ`*为空，factor 的身份验证方法*`ñ`*是可选的。如果给定，它可以使用任何对元素有效的身份验证插件*`ñ`*（如后所述）。

    -   如果元素*`ñ`*列表中缺少（即少于*`ñ`*-1 值中的逗号），因子的认证方法*`ñ`*禁止。例如，一个值为`'*'`仅允许单一因素，因此对使用创建的新帐户强制执行单一因素身份验证 (1FA)[`创建用户`](create-user.html)或更改现有帐户[`更改用户`](alter-user.html).在这种情况下，此类语句不能为因素 2 或 3 指定身份验证。

        当一个[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)元素命名身份验证插件，元素的允许插件名称受以下条件限制：

    -   元素 1 必须命名一个不需要注册步骤的插件。例如，`身份验证_fido`无法命名。

    -   元素 2 和 3 必须命名一个不使用内部凭证存储的插件。

        有关哪些身份验证插件使用内部凭据存储的信息，请参阅[第 6.2.15 节，“密码管理”](password-management.html).

        什么时候[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)元素*`ñ`*是`*`, factor 允许的插件名称*`ñ`*帐户定义受以下条件约束：

    -   对于因素 1，帐户定义可以使用任何插件。默认身份验证插件规则适用于未命名插件的身份验证规范。看[默认身份验证插件](pluggable-authentication.html#pluggable-authentication-default-plugin).

    -   对于因素 2 和 3，帐户定义无法命名使用内部凭证存储的插件。例如，用 '`*,*`', '`*,*,*`', '`*,`', '`*,,`'[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)设置，使用内部凭据存储的插件仅允许用于第一个因素，并且不能重复。

        什么时候[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)元素*`ñ`*为空，factor 的允许插件名称*`ñ`*帐户定义受以下条件约束：

    -   对于因子 1，这不适用，因为元素 1 不能为空。

    -   对于因素 2 和 3，帐户定义无法命名使用内部凭证存储的插件。

        空元素必须出现在列表的末尾，跟在一个非空元素之后。换句话说，第一个元素不能为空，要么没有元素为空，要么最后一个元素为空，要么最后两个元素为空。例如，一个值为`',,'`不允许，因为它表示所有因素都是可选的。那不可能；帐户必须具有至少一个身份验证因素。

        默认值为[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)是`'*,,'`.这意味着帐户定义中需要因素 1 并且可以使用任何身份验证插件，并且因素 2 和 3 是可选的，并且每个因素都可以使用任何不使用内部凭据存储的身份验证插件。

        下表显示了一些[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)每个人为创建或更改帐户而建立的价值观和政策。

    [](<>)

    **表 5.4 认证示例\_政策价值**

    | 验证\_保单价值 | 有效的政策 |
    | -------- | ----- |
    | `'*'` | 仅允许创建或更改具有一个因素的帐户。 |
    | `'*,*'` | 仅允许创建或更改具有两个因素的帐户。 |
    | `'*,*,*'` | 仅允许创建或更改具有三个因素的帐户。 |
    | `'*,'` | 允许创建或更改具有一两个因素的帐户。 |
    | `'*,,'` | 允许创建或更改具有一个、两个或三个因素的帐户。 |
    | `'*,*,'` | 允许创建或更改具有两个或三个因素的帐户。 |
    | `'*,*`auth_plugin`*'` | 允许创建或更改具有两个因素的帐户，其中第一个因素可以是任何身份验证方法，第二个因素必须是命名插件。 |
    | `'*`auth_plugin`*,*,'` | 允许创建或更改具有两个或三个因素的帐户，其中第一个因素必须是指定的插件。 |
    | `'*`auth_plugin`*,'` | 允许使用一个或两个因素创建或更改帐户，其中第一个因素必须是指定的插件。 |
    | `'*`auth_plugin`*,*`auth_plugin`*,*`auth_plugin`*'` | 允许创建或更改具有三个因素的帐户，其中因素必须使用命名插件。 |

-   [](<>) [`authentication_windows_log_level`](server-system-variables.html#sysvar_authentication_windows_log_level)

    [](<>)[](<>)

    | 命令行格式 | `--authentication-windows-log-level=#` |
    | ----- | -------------------------------------- |
    | 系统变量 | `[authentication_windows_log_level](server-system-variables.html#sysvar_authentication_windows_log_level)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2` |
    | 最小值 | `0` |
    | 最大值 | `4` |

    此变量仅在以下情况下可用`身份验证_windows`启用 Windows 身份验证插件并启用调试代码。看[第 6.4.1.6 节，“Windows 可插入身份验证”](windows-pluggable-authentication.html).

    此变量设置 Windows 身份验证插件的日志记录级别。下表显示了允许的值。

    | 价值 | 描述 |
    | --- | --- |
    | 0 | 无日志记录 |
    | 1 | 仅记录错误消息 |
    | 2 | 日志级别 1 消息和警告消息 |
    | 3 | 日志级别 2 消息和信息说明 |
    | 4 | 日志级别 3 消息和调试消息 |

-   [](<>) [`authentication_windows_use_principal_name`](server-system-variables.html#sysvar_authentication_windows_use_principal_name)

    [](<>)[](<>)

    | 命令行格式 | `--authentication-windows-use-principal-name[={OFF|ON}]` |
    | ----- | -------------------------------------------------------- |
    | 系统变量 | `[authentication_windows_use_principal_name]（服务器系统变量.html#sysvar_authentication_windows_use_principal_name）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    此变量仅在以下情况下可用`身份验证_windows`Windows 身份验证插件已启用。看[第 6.4.1.6 节，“Windows 可插入身份验证”](windows-pluggable-authentication.html).

    使用身份验证的客户端`初始化安全上下文（）`函数应该提供一个字符串来标识它所连接的服务（*`目标名称`*）。MySQL 使用运行服务器的帐户的主体名称 (UPN)。UPN 具有以下形式`*`用户身份`*@*`计算机名`*`并且无需在任何地方注册即可使用。此 UPN 在身份验证握手开始时由服务器发送。

    此变量控制服务器是否在初始质询中发送 UPN。默认情况下，该变量已启用。出于安全原因，可以禁用它以避免将服务器的帐户名称以明文形式发送给客户端。如果该变量被禁用，服务器总是发送一个`0x00`第一个挑战中的字节，客户端没有指定*`目标名称`*，因此使用了 NTLM 身份验证。

    如果服务器无法获取其 UPN（这主要发生在不支持 Kerberos 身份验证的环境中），则服务器不会发送 UPN，而是使用 NTLM 身份验证。

-   [](<>) [`自动提交`](server-system-variables.html#sysvar_autocommit)

    [](<>)[](<>)

    | 命令行格式 | `--autocommit[={OFF|ON}]` |
    | ----- | ------------------------- |
    | 系统变量 | `[自动提交]（服务器系统变量.html#sysvar_autocommit）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    自动提交模式。如果设置为 1，则对表的所有更改都会立即生效。如果设置为 0，则必须使用[`犯罪`](commit.html)接受交易或[`回滚`](commit.html)取消它。如果[`自动提交`](server-system-variables.html#sysvar_autocommit)当值为0时，将其更改为1，MySQL将自动执行[`犯罪`](commit.html)任何公开交易。另一种开始交易的方式是使用[`开始交易`](commit.html)或[`开始`](commit.html)陈述看见[第13.3.1节，“启动事务、提交和回滚语句”](commit.html).

    默认情况下，客户端连接从[`自动提交`](server-system-variables.html#sysvar_autocommit)设置为1。要使客户端以默认值0开头，请设置全局[`自动提交`](server-system-variables.html#sysvar_autocommit)通过使用[`--自动提交=0`](server-system-variables.html#sysvar_autocommit)选项要使用选项文件设置变量，请包括以下行：

    ```
    [mysqld]
    autocommit=0
    ```

-   [](<>) [`自动权限`](server-system-variables.html#sysvar_automatic_sp_privileges)

    [](<>)[](<>)

    | 命令行格式 | `--自动sp权限[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[automatic_sp_privileges]（server system variables.html#sysvar_automatic_sp_privileges）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    当此变量的值为1（默认值）时，服务器会自动授予[`处决`](privileges-provided.html#priv_execute)和[`改变常规`](privileges-provided.html#priv_alter-routine)如果用户无法执行、更改或删除存储例程，则授予该例程创建者的权限。(小标题)[`改变常规`](privileges-provided.html#priv_alter-routine)需要特权才能删除该例程。）当例程被删除时，服务器还会自动从创建者处删除这些权限。如果[`自动权限`](server-system-variables.html#sysvar_automatic_sp_privileges)如果为0，服务器不会自动添加或删除这些权限。

    例程的创建者是用于执行`创造`声明。这可能与名为`定义者`在常规定义中。

    如果你开始[**mysqld**](mysqld.html)具有[`--跳过新的`](server-options.html#option_mysqld_skip-new), [`自动权限`](server-system-variables.html#sysvar_automatic_sp_privileges)即将`关`.

    另见[第25.2.2节，“存储例程和MySQL权限”](stored-routines-privileges.html).

-   [](<>) [`自动生成证书`](server-system-variables.html#sysvar_auto_generate_certs)

    [](<>)[](<>)

    | 命令行格式 | `--自动生成证书[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[auto_generate_certs]（server system variables.html#sysvar_auto_generate_certs）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    此变量控制服务器是否在数据目录中自动生成SSL密钥和证书文件（如果它们不存在）。

    在启动时，如果[`自动生成证书`](server-system-variables.html#sysvar_auto_generate_certs)系统变量已启用，没有SSL选项，只有[`--ssl`](server-options.html#option_mysqld_ssl)并且数据目录中缺少服务器端SSL文件。这些文件使用SSL实现安全的客户端连接；看见[第6.3.1节，“配置MySQL以使用加密连接”](using-encrypted-connections.html).

    有关SSL文件自动生成的更多信息，包括文件名和特征，请参阅[第6.3.3.1节，“使用MySQL创建SSL和RSA证书及密钥”](creating-ssl-rsa-files-using-mysql.html)

    这个[`sha256_密码_自动_生成_rsa_密钥`](server-system-variables.html#sysvar_sha256_password_auto_generate_rsa_keys)和[`缓存\u sha2\u密码\u自动生成\u rsa\u密钥`](server-system-variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys)系统变量是相关的，但可以控制自动生成RSA密钥对文件，这些文件是在非加密连接上使用RSA进行安全密码交换所需的。

-   [](<>) [`避免临时升级`](server-system-variables.html#sysvar_avoid_temporal_upgrade)

    [](<>)[](<>)

    | 命令行格式 | `--避免临时升级[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 反对 | 对 |
    | 系统变量 | `[避免临时升级]（服务器系统变量.html#sysvar_避免临时升级）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量控制是否[`改变桌子`](alter-table.html)隐式升级5.6.4之前格式的时态列([`时间`](time.html), [`约会时间`](datetime.html)和[`时间戳`](datetime.html)不支持分数秒精度的列）。升级这些列需要重新生成表，这样可以防止使用可能应用于要执行的操作的快速更改。

    默认情况下禁用此变量。启用它会导致[`改变桌子`](alter-table.html)不重建时态列，因此能够利用可能的快速更改。

    此变量已弃用；预计它将在未来的MySQL版本中被删除。

-   [](<>) [`倒木`](server-system-variables.html#sysvar_back_log)

    [](<>)[](<>)

    | 命令行格式 | `--倒木=#` |
    | ----- | -------- |
    | 系统变量 | `[back_log]（server system variables.html#sysvar_back_log）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1`（表示自动调整大小；不指定此文字值） |
    | 最小值 | `1.` |
    | 最大值 | `65535` |

    MySQL可以拥有的未完成连接请求数。当MySQL主线程在很短的时间内收到很多连接请求时，这一点就开始发挥作用。然后，主线程需要一些时间（尽管很少）来检查连接并启动一个新线程。这个[`倒木`](server-system-variables.html#sysvar_back_log)值指示在MySQL暂时停止响应新请求之前，在这短时间内可以叠加多少请求。只有当你期望在短时间内有大量的连接时，你才需要增加这个值。

    换句话说，该值是传入TCP/IP连接的侦听队列的大小。您的操作系统对此队列的大小有自己的限制。Unix的手册页`听着`系统调用应该有更多细节。查看操作系统文档以获取此变量的最大值。[`倒木`](server-system-variables.html#sysvar_back_log)不能设置为高于您的操作系统限制。

    默认值是[`max_连接`](server-system-variables.html#sysvar_max_connections)，使允许的积压工作能够调整到允许的最大连接数。

-   [](<>) [`basedir`](server-system-variables.html#sysvar_basedir)

    [](<>)[](<>)

    | 命令行格式 | `--basedir=dir_name` |
    | ----- | -------------------- |
    | 系统变量 | `[basedir]（server system variables.html#sysvar_basedir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |
    | 默认值 | `mysqld安装目录的父目录` |

    MySQL安装基础目录的路径。

-   [](<>) [`大桌子`](server-system-variables.html#sysvar_big_tables)

    [](<>)[](<>)

    | 命令行格式 | `--大桌子[={OFF | ON}]` |
    | ----- | -------------------- |
    | 系统变量 | `[big_tables]（server system variables.html#sysvar_big_tables）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    [](<>)

    如果启用，服务器会将所有临时表存储在磁盘上，而不是内存中。这就阻止了大多数人`桌子*`tbl\_名称`*已经满了`错误[`选择`](select.html)操作需要一个大的临时表，但也会减慢内存中的表可以满足的查询速度。

    新连接的默认值为`关`（使用内存中的临时表）。通常，不需要启用此变量。在记忆中*内部的*临时表由`诱人的`存储引擎（默认），以及`诱人的`超过存储引擎时`诱人的`存储引擎开始将数据存储到磁盘上的临时文件中。当内存中的临时表由`记忆力`在存储引擎中，内存中的表会根据需要自动转换为基于磁盘的表。有关更多信息，请参阅[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

-   [](<>) [`绑定地址`](server-system-variables.html#sysvar_bind_address)

    [](<>)[](<>)

    | 命令行格式 | `--绑定地址=地址` |
    | ----- | ----------- |
    | 系统变量 | `[bind_address]（server system variables.html#sysvar_bind_address）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `*` |

    MySQL服务器在一个或多个网络套接字上侦听TCP/IP连接。每个套接字绑定到一个地址，但一个地址可以映射到多个网络接口。要指定服务器应如何侦听TCP/IP连接，请设置[`绑定地址`](server-system-variables.html#sysvar_bind_address)服务器启动时的系统变量。服务器也有一个[`管理员地址`](server-system-variables.html#sysvar_admin_address)在专用接口上启用管理连接的系统变量。看见[第5.1.12.1节“连接接口”](connection-interfaces.html).

    如果[`绑定地址`](server-system-variables.html#sysvar_bind_address)如果指定，其值必须满足以下要求：

    -   在MySQL 8.0.13之前，[`绑定地址`](server-system-variables.html#sysvar_bind_address)接受单个地址值，该值可以指定单个非通配符IP地址或主机名，或允许在多个网络接口上侦听的通配符地址格式之一(`*`, `0.0.0.0`或`::`).

    -   从MySQL 8.0.13开始，[`绑定地址`](server-system-variables.html#sysvar_bind_address)接受刚才描述的单个值，或逗号分隔的值列表。当变量命名多个值的列表时，每个值必须指定一个非通配符IP地址（IPv4或IPv6）或主机名。通配符地址格式(`*`, `0.0.0.0`或`::`)不允许出现在值列表中。

    -   从MySQL 8.0.22开始，地址可能包括网络名称空间说明符。

        IP地址可以指定为IPv4或IPv6地址。对于作为主机名的任何值，服务器将该名称解析为IP地址并绑定到该地址。如果主机名解析为多个IP地址，则服务器使用第一个IPv4地址（如果有），否则使用第一个IPv6地址。

        服务器按如下方式处理不同类型的地址：

    -   如果地址是`*`，服务器在所有服务器主机IPv4接口上接受TCP/IP连接，如果服务器主机支持IPv6，则在所有IPv6接口上接受TCP/IP连接。使用此地址可在所有服务器接口上同时允许IPv4和IPv6连接。此值是默认值。如果变量指定了多个值的列表，则不允许使用此值。

    -   如果地址是`0.0.0.0`，服务器在所有服务器主机IPv4接口上接受TCP/IP连接。如果变量指定了多个值的列表，则不允许使用此值。

    -   如果地址是`::`，服务器在所有服务器主机IPv4和IPv6接口上接受TCP/IP连接。如果变量指定了多个值的列表，则不允许使用此值。

    -   如果地址是IPv4映射的地址，则服务器接受该地址的TCP/IP连接（IPv4或IPv6格式）。例如，如果服务器绑定到`：：ffff:127.0.0.1`，客户端可以使用`--主机=127.0.0.1`或`--主机=：：ffff:127.0.0.1`.

    -   如果地址是“常规”IPv4或IPv6地址（例如`127.0.0.1`或`::1`)，服务器只接受该IPv4或IPv6地址的TCP/IP连接。

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

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

    -   无法为通配符IP地址指定网络命名空间。

    -   对于给定的地址，网络名称空间是可选的。如果给定，则必须指定为`/*`ns`*`地址后面紧跟着后缀。

    -   没有地址的地址`/*`ns`*`后缀使用主机系统全局命名空间。因此，全局名称空间是默认名称空间。

    -   带字母的地址`/*`ns`*`后缀使用名为*`ns`*.

    -   主机系统必须支持网络名称空间，并且每个命名名称空间必须之前已设置。命名不存在的命名空间会产生错误。

    -   如果变量值指定了多个地址，它可以包括全局名称空间、命名名称空间或混合名称空间中的地址。

        有关网络名称空间的更多信息，请参阅[第5.1.14节，“网络名称空间支持”](network-namespace-support.html).

        如果绑定到任何地址失败，服务器将产生错误并不会启动。

        例如：

    -   `绑定地址=*`

        服务器侦听所有IPv4或IPv6地址，如`*`通配符。

    -   `绑定地址=198.51.100.20`

        服务器只在网络上侦听`198.51.100.20`IPv4地址。

    -   `绑定地址=198.51.100.202001:db8:0:f101:：1`

        服务器监听网络`198.51.100.20`IPv4地址和`2001:db8:0:f101:：1`IPv6地址。

    -   `绑定地址=198.51.100.20*`

        这会产生一个错误，因为在以下情况下不允许使用通配符地址：[`绑定地址`](server-system-variables.html#sysvar_bind_address)命名多个值的列表。

    -   `绑定地址=198.51.100.20/红色，2001:db8:0:f101:：1/蓝色，192.0.2.50`

        服务器监听网络`198.51.100.20`中的IPv4地址`红色`名称空间`2001:db8:0:f101:：1`网络中的IPv6地址`蓝色`名称空间，以及`192.0.2.50`全局命名空间中的IPv4地址。

        什么时候[`绑定地址`](server-system-variables.html#sysvar_bind_address)命名一个值（通配符或非通配符），服务器侦听单个套接字，对于通配符地址，该套接字可能绑定到多个网络接口。什么时候[`绑定地址`](server-system-variables.html#sysvar_bind_address)命名一个多个值的列表，服务器对每个值监听一个套接字，每个套接字绑定到一个网络接口。套接字的数量与指定的值的数量成线性关系。根据操作系统连接接受效率的不同，长值列表可能会因接受TCP/IP连接而导致性能损失。

    [](<>)由于文件描述符是为侦听套接字和网络命名空间文件分配的，因此可能需要增加[`打开\u文件\u限制`](server-system-variables.html#sysvar_open_files_limit)系统变量。

    如果要将服务器绑定到特定地址，请确保`mysql。使用者`系统表包含一个具有管理权限的帐户，您可以使用该帐户连接到该地址。否则，无法关闭服务器。例如，如果将服务器绑定到`*`，您可以使用所有现有帐户连接到它。但是如果你把服务器绑定到`::1`，它只接受该地址上的连接。在这种情况下，首先确保`“root'@:：1”`账户存在于`mysql。使用者`表，以便您仍然可以连接到服务器以关闭它。

-   [](<>) [`块加密模式`](server-system-variables.html#sysvar_block_encryption_mode)

    [](<>)[](<>)

    | 命令行格式 | `--块加密模式=#` |
    | ----- | ----------- |
    | 系统变量 | `[block_encryption_mode]（server system variables.html#sysvar_block_encryption_mode）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)Hint Applies | No |
    | Type | String |
    | Default Value | `aes-128-ecb` |

    This variable controls the block encryption mode for block-based algorithms such as AES. It affects encryption for[`AES_ENCRYPT()`](encryption-functions.html#function_aes-encrypt)and[`AES_DECRYPT()`](encryption-functions.html#function_aes-decrypt).

    [`block_encryption_mode`](server-system-variables.html#sysvar_block_encryption_mode)takes a value in`aes-*`keylen`*-*`mode`*`format, where*`keylen`*is the key length in bits and*`mode`*is the encryption mode. The value is not case-sensitive. Permitted*`keylen`*values are 128, 192, and 256. Permitted*`mode`*values are`ECB`,`CBC`, `CFB1`, `CFB8`, `CFB128`和`OFB`.

    例如，此语句导致AES加密函数使用256位的密钥长度和CBC模式：

    ```
    SET block_encryption_mode = 'aes-256-cbc';
    ```

    尝试设置时出错[`块加密模式`](server-system-variables.html#sysvar_block_encryption_mode)指向包含不受支持的密钥长度或SSL库不支持的模式的值。

-   [](<>) [`批量插入缓冲区大小`](server-system-variables.html#sysvar_bulk_insert_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--大容量插入缓冲区大小=#` |
    | ----- | ---------------- |
    | 系统变量 | `[bulk_insert_buffer_size]（server system variables.html#sysvar_bulk_insert_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `8388608` |
    | 最小值 | `0` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    `米萨姆`使用一种特殊的树状缓存来加快批量插入的速度[`插入选择`](insert-select.html), `插入值（…），(...), ...`和[`加载数据`](load-data.html)向非空表添加数据时。此变量限制缓存树的大小（以每个线程的字节为单位）。将其设置为0将禁用此优化。默认值为8MB。

    从MySQL 8.0.14开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`缓存\u sha2\u密码\u摘要\u轮`](server-system-variables.html#sysvar_caching_sha2_password_digest_rounds)

    [](<>)[](<>)

    | 命令行格式 | `--caching-sha2-password-digest-rounds=#` |
    | ----- | ----------------------------------------- |
    | 介绍 | 8.0.24 |
    | 系统变量 | `[caching_sha2_password_digest_rounds]（server system variables.html#sysvar_caching_sha2_password_digest_rounds）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `5000` |
    | 最小值 | `5000` |
    | 最大值 | `4095000` |

    用户使用的哈希轮数`缓存_sha2_密码`用于密码存储的身份验证插件。

    如果将哈希轮数增加到默认值以上，将导致与增加量相关的性能损失：

    -   创建一个使用`缓存_sha2_密码`插件对创建帐户的客户端会话没有影响，但服务器必须执行哈希循环才能完成操作。

    -   对于使用该帐户的客户端连接，服务器必须执行哈希循环，并将结果保存在缓存中。结果是，第一个客户端连接的登录时间更长，但后续连接的登录时间不会更长。每次服务器重启后都会发生这种行为。

-   [](<>) [`缓存\u sha2\u密码\u自动生成\u rsa\u密钥`](server-system-variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys)

    [](<>)[](<>)

    | 命令行格式 | `--caching-sha2-password-auto-generate-rsa-keys[={OFF | ON}]` |
    | ----- | ------------------------------------------------------------- |
    | 系统变量 | `[caching_sha2_password_auto_generate_rsa_keys]（server system variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    服务器使用此变量确定是否在数据目录中自动生成RSA私钥/公钥对文件（如果这些文件尚不存在）。

    在启动时，如果所有这些条件都满足，服务器会自动在数据目录中生成RSA私钥/公钥对文件：[`sha256_密码_自动_生成_rsa_密钥`](server-system-variables.html#sysvar_sha256_password_auto_generate_rsa_keys)或[`缓存\u sha2\u密码\u自动生成\u rsa\u密钥`](server-system-variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys)系统变量已启用；未指定RSA选项；数据目录中缺少RSA文件。这些密钥对文件支持使用RSA在未加密的连接上对通过身份验证的帐户进行安全密码交换`shau密码`或`缓存_sha2_密码`插件；看见[第6.4.1.3节，“SHA-256可插拔认证”](sha256-pluggable-authentication.html)和[第6.4.1.2节，“缓存SHA-2可插拔身份验证”](caching-sha2-pluggable-authentication.html).

    有关RSA文件自动生成的更多信息，包括文件名和特征，请参阅[第6.3.3.1节，“使用MySQL创建SSL和RSA证书及密钥”](creating-ssl-rsa-files-using-mysql.html)

    这个[`自动生成证书`](server-system-variables.html#sysvar_auto_generate_certs)系统变量是相关的，但控制使用SSL安全连接所需的SSL证书和密钥文件的自动生成。

-   [](<>) [`缓存\u sha2\u密码\u私钥\u路径`](server-system-variables.html#sysvar_caching_sha2_password_private_key_path)

    [](<>)[](<>)

    | 命令行格式 | `--caching-sha2-password-private-key-path=文件名` |
    | ----- | ---------------------------------------------- |
    | 系统变量 | `[caching_sha2_password_private_key_path]（server system variables.html#sysvar_caching_sha2_password_private_key_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `私钥。佩姆` |

    此变量指定该应用程序的RSA私钥文件的路径名`缓存_sha2_密码`身份验证插件。如果该文件被命名为相对路径，则会相对于服务器数据目录进行解释。该文件必须为PEM格式。

    重要的

    因为这个文件存储了一个私钥，所以它的访问模式应该受到限制，只有MySQL服务器才能读取它。

    有关`缓存_sha2_密码`看见[第6.4.1.2节，“缓存SHA-2可插拔身份验证”](caching-sha2-pluggable-authentication.html).

-   [](<>) [`缓存\u sha2\u密码\u公钥\u路径`](server-system-variables.html#sysvar_caching_sha2_password_public_key_path)

    [](<>)[](<>)

    | 命令行格式 | `--caching-sha2-password-public-key-path=文件名` |
    | ----- | --------------------------------------------- |
    | 系统变量 | `[caching_sha2_password_public_key_path]（server system variables.html#sysvar_caching_sha2_password_public_key_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `公开密钥。佩姆` |

    此变量指定该应用程序的RSA公钥文件的路径名`缓存_sha2_密码`身份验证插件。如果该文件被命名为相对路径，则会相对于服务器数据目录进行解释。该文件必须为PEM格式。

    有关`缓存_sha2_密码`，包括有关客户端如何请求RSA公钥的信息，请参阅[第6.4.1.2节，“缓存SHA-2可插拔身份验证”](caching-sha2-pluggable-authentication.html).

-   [](<>) [`字符集客户端`](server-system-variables.html#sysvar_character_set_client)

    [](<>)[](<>)

    | 系统变量 | `[character_set_client]（server system variables.html#sysvar_character_set_client）` |
    | ---- | ---------------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4` |

    来自客户端的语句的字符集。当客户端连接到服务器时，使用客户端请求的字符集设置此变量的会话值。（许多客户支持`--默认字符集`选项以启用显式指定此字符集。另见[第10.4节，“连接字符集和排序规则”](charset-connection.html)。当客户端请求的值未知或不可用，或服务器配置为忽略客户端请求时，变量的全局值用于设置会话值：

    -   客户端请求服务器不知道的字符集。例如，支持日语的客户端请求`sjis`连接到未配置的服务器时`sjis`支持

    -   该客户端来自比MySQL 4.1更早的MySQL版本，因此不请求字符集。

    -   [**mysqld**](mysqld.html)是从[`--跳过字符集客户端握手`](server-options.html#option_mysqld_character-set-client-handshake)选项，这会导致它忽略客户端字符集配置。这重现了MySQL 4.0的行为，如果您希望升级服务器而不升级所有客户端，这非常有用。

        某些字符集不能用作客户端字符集。试图将它们用作[`字符集客户端`](server-system-variables.html#sysvar_character_set_client)值生成一个错误。看见[不允许的客户端字符集](charset-connection.html#charset-connection-impermissible-client-charset).

-   [](<>) [`字符集连接`](server-system-variables.html#sysvar_character_set_connection)

    [](<>)[](<>)

    | 系统变量 | `[character_set_connection]（server system variables.html#sysvar_character_set_connection）` |
    | ---- | ------------------------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4` |

    用于不使用字符集引入符指定的文字和用于数字到字符串转换的字符集。有关介绍人的信息，请参阅[第10.3.8节，“字符集介绍人”](charset-introducer.html).

-   [](<>) [`字符集数据库`](server-system-variables.html#sysvar_character_set_database)

    [](<>)[](<>)

    | 系统变量 | `[character_set_database]（server system variables.html#sysvar_character_set_database）` |
    | ---- | -------------------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4` |
    | 脚注 | 此选项是动态的，但只能由服务器设置。不应手动设置此变量。 |

    默认数据库使用的字符集。每当默认数据库更改时，服务器都会设置此变量。如果没有默认数据库，则变量的值与[`字符集服务器`](server-system-variables.html#sysvar_character_set_server).

    从MySQL 8.0.14开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

    全球[`字符集数据库`](server-system-variables.html#sysvar_character_set_database)和[`整理数据库`](server-system-variables.html#sysvar_collation_database)不推荐使用系统变量；预计它们将在MySQL的未来版本中被删除。

    为会话赋值[`字符集数据库`](server-system-variables.html#sysvar_character_set_database)和[`整理数据库`](server-system-variables.html#sysvar_collation_database)系统变量已弃用，分配会产生警告。在MySQL的未来版本中，会话变量可能会变成只读的（分配给它们会产生错误），在该版本中，仍然可以访问会话变量来确定默认数据库的数据库字符集和排序规则。

-   [](<>) [`字符集文件系统`](server-system-variables.html#sysvar_character_set_filesystem)

    [](<>)[](<>)

    | 命令行格式 | `--字符集文件系统=名称` |
    | ----- | -------------- |
    | 系统变量 | `[character_set_filesystem]（server system variables.html#sysvar_character_set_filesystem）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `二进制的` |

    文件系统字符集。此变量用于解释引用文件名的字符串文字，例如[`加载数据`](load-data.html)和[`选择到外边去`](select-into.html)声明和[`加载_文件（）`](string-functions.html#function_load-file)作用这样的文件名是从[`字符集客户端`](server-system-variables.html#sysvar_character_set_client)到[`字符集文件系统`](server-system-variables.html#sysvar_character_set_filesystem)在尝试打开文件之前。默认值为`二进制的`，这意味着不会发生转换。对于允许使用多字节文件名的系统，不同的值可能更合适。例如，如果系统使用UTF-8表示文件名，则设置[`字符集文件系统`](server-system-variables.html#sysvar_character_set_filesystem)到`“utf8mb4”`.

    从MySQL 8.0.14开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`字符集结果`](server-system-variables.html#sysvar_character_set_results)

    [](<>)[](<>)

    | 系统变量 | `[character_set_results]（server system variables.html#sysvar_character_set_results）` |
    | ---- | ------------------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4` |

    用于将查询结果返回给客户端的字符集。这包括结果数据（如列值）、结果元数据（如列名）和错误消息。

-   [](<>) [`字符集服务器`](server-system-variables.html#sysvar_character_set_server)

    [](<>)[](<>)

    | 命令行格式 | `--字符集服务器=名称` |
    | ----- | ------------- |
    | 系统变量 | `[character_set_server]（server system variables.html#sysvar_character_set_server）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4` |

    服务器默认的字符集。看见[第10.15节，“字符集配置”](charset-configuration.html).如果设置此变量，还应设置[`整理服务器`](server-system-variables.html#sysvar_collation_server)指定字符集的排序规则。

-   [](<>) [`字符集系统`](server-system-variables.html#sysvar_character_set_system)

    [](<>)[](<>)

    | 系统变量 | `[character_set_system]（server system variables.html#sysvar_character_set_system）` |
    | ---- | ---------------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8` |

    服务器用于存储标识符的字符集。价值总是`utf8`.

-   [](<>) [`字符集`](server-system-variables.html#sysvar_character_sets_dir)

    [](<>)[](<>)

    | 命令行格式 | `--字符集dir=dir\u name` |
    | ----- | --------------------- |
    | 系统变量 | `[character_sets_dir]（server system variables.html#sysvar_character_sets_dir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    安装字符集的目录。看见[第10.15节，“字符集配置”](charset-configuration.html).

-   [](<>) [`检查代理用户`](server-system-variables.html#sysvar_check_proxy_users)

    [](<>)[](<>)

    | 命令行格式 | `--检查代理用户[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[check_proxy_users]（server system variables.html#sysvar_check_proxy_users）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    一些身份验证插件为自己实现代理用户映射（例如，PAM和Windows身份验证插件）。默认情况下，其他身份验证插件不支持代理用户。其中一些可以请求MySQL服务器本身根据授予的代理权限映射代理用户：`mysql_本机_密码`, `shau密码`.

    如果[`检查代理用户`](server-system-variables.html#sysvar_check_proxy_users)如果启用系统变量，服务器将为发出此类请求的任何身份验证插件执行代理用户映射。但是，可能还需要启用特定于插件的系统变量，以利用服务器代理用户映射支持：

    -   对于`mysql_本机_密码`插件，启用[`mysql\本地\密码\代理\用户`](server-system-variables.html#sysvar_mysql_native_password_proxy_users).

    -   对于`shau密码`插件，启用[`sha256_密码_代理_用户`](server-system-variables.html#sysvar_sha256_password_proxy_users).

        有关用户代理的信息，请参阅[第6.2.19节“代理用户”](proxy-users.html).

-   [](<>) [`校对连接`](server-system-variables.html#sysvar_collation_connection)

    [](<>)[](<>)

    | 系统变量 | `[collation_connection]（server system variables.html#sysvar_collation_connection）` |
    | ---- | ---------------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    连接字符集的排序规则。[`校对连接`](server-system-variables.html#sysvar_collation_connection)对于文本字符串的比较很重要。对于字符串与列值的比较，[`校对连接`](server-system-variables.html#sysvar_collation_connection)这无关紧要，因为列有自己的排序规则，排序规则的优先级更高（请参见[第10.8.4节，“表达式中的排序强制性”](charset-collation-coercibility.html)).

-   [](<>) [`整理数据库`](server-system-variables.html#sysvar_collation_database)

    [](<>)[](<>)

    | 系统变量 | `[collation_database]（server system variables.html#sysvar_collation_database）` |
    | ---- | ------------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4_0900_ai_ci` |
    | 脚注 | 此选项是动态的，但只能由服务器设置。不应手动设置此变量。 |

    默认数据库使用的排序规则。每当默认数据库更改时，服务器都会设置此变量。如果没有默认数据库，则变量的值与[`整理服务器`](server-system-variables.html#sysvar_collation_server).

    从MySQL 8.0.18开始，设置此系统变量的会话值不再是一项受限操作。

    全球[`字符集数据库`](server-system-variables.html#sysvar_character_set_database)和[`整理数据库`](server-system-variables.html#sysvar_collation_database)不推荐使用系统变量；预计它们将在MySQL的未来版本中被删除。

    为会话赋值[`字符集数据库`](server-system-variables.html#sysvar_character_set_database)和[`整理数据库`](server-system-variables.html#sysvar_collation_database)系统变量已弃用，分配会产生警告。在MySQL的未来版本中，会话变量可能会变成只读的（并且赋值会产生错误），在该版本中，仍然可以访问会话变量以确定默认数据库的数据库字符集和排序规则。

-   [](<>) [`整理服务器`](server-system-variables.html#sysvar_collation_server)

    [](<>)[](<>)

    | 命令行格式 | `--排序规则服务器=名称` |
    | ----- | -------------- |
    | 系统变量 | `[collation_server]（server system variables.html#sysvar_collation_server）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `utf8mb4_0900_ai_ci` |

    服务器的默认排序规则。看见[第10.15节，“字符集配置”](charset-configuration.html).

-   [](<>) [`完成型`](server-system-variables.html#sysvar_completion_type)

    [](<>)[](<>)

    | 命令行格式 | `--完成类型=#` |
    | ----- | ---------- |
    | 系统变量 | `[completion_type]（server system variables.html#sysvar_completion_type）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `无链` |
    | 有效值 | `无链`<br/><br/>`链条`<br/><br/>`释放`<br/><br/>`0`<br/><br/>`1.`<br/><br/>`2.` |

    事务完成类型。此变量可以采用下表中所示的值。可以使用名称值或相应的整数值来分配变量。

    | 价值 | 描述 |
    | --- | --- |
    | `无链`（或0） | [`犯罪`](commit.html)和[`回降`](commit.html)都不受影响。这是默认值。 |
    | `链条`（或1） | [`犯罪`](commit.html)和[`回降`](commit.html)相当于`承诺和约束`和`回滚和链`分别地（新事务立即开始，隔离级别与刚刚终止的事务相同。） |
    | `释放`（或2） | [`犯罪`](commit.html)和[`回降`](commit.html)相当于`承诺释放`和`回滚释放`分别地（服务器在终止事务后断开连接。） |

    [`完成型`](server-system-variables.html#sysvar_completion_type)影响以[`开始交易`](commit.html)或[`开始`](commit.html)以[`犯罪`](commit.html)或[`回降`](commit.html)。它不适用于因执行中列出的语句而产生的隐式提交[第13.3.3节，“导致隐式提交的语句”](implicit-commit.html).它也不适用于[`XA提交`](xa-statements.html), [`XA回滚`](xa-statements.html)，或者什么时候[`自动提交=1`](server-system-variables.html#sysvar_autocommit).

-   [](<>) [`同时插入`](server-system-variables.html#sysvar_concurrent_insert)

    [](<>)[](<>)

    | 命令行格式 | `--并发插入[=值]` |
    | ----- | ------------ |
    | 系统变量 | `[concurrent_insert]（server system variables.html#sysvar_concurrent_insert）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `汽车` |
    | 有效值 | `从不`<br/><br/>`汽车`<br/><br/>`总是`<br/><br/>`0`<br/><br/>`1.`<br/><br/>`2.` |

    如果`汽车`（默认情况下），MySQL允许[`插入`](insert.html)和[`选择`](select.html)要同时运行的语句`米萨姆`数据文件中间没有空闲块的表。

    此变量可以采用下表中所示的值。可以使用名称值或相应的整数值来分配变量。

    | 价值 | 描述 |
    | --- | --- |
    | `从不`（或0） | 禁用并发插入 |
    | `汽车`（或1） | （默认值）启用对的并发插入`米萨姆`没有孔的桌子 |
    | `总是`（或2） | 为所有用户启用并发插入`米萨姆`桌子，甚至那些有洞的桌子。对于带孔的工作台，如果另一个线程正在使用该工作台，则会在该工作台的末尾插入新行。否则，MySQL将获得一个正常的写锁，并将该行插入该孔中。 |

    如果你开始[**mysqld**](mysqld.html)具有[`--跳过新的`](server-options.html#option_mysqld_skip-new), [`同时插入`](server-system-variables.html#sysvar_concurrent_insert)即将`从不`.

    另见[第8.11.3节“并发插入”](concurrent-inserts.html).

-   [](<>) [`连接超时`](server-system-variables.html#sysvar_connect_timeout)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--连接超时=#` |
    | ----- | ---------- |
    | 系统变量 | `[connect_timeout]（server system variables.html#sysvar_connect_timeout）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `10` |
    | 最小值 | `2.` |
    | 最大值 | `31536000` |

    事件发生的秒数[**mysqld**](mysqld.html)服务器在响应之前等待连接数据包`握手不好`。默认值为10秒。

    增加[`连接超时`](server-system-variables.html#sysvar_connect_timeout)如果客户端经常遇到表单错误，则value可能会有所帮助`与MySQL服务器的连接在'*`XXX`*，系统错误：*`呃不`*`.

-   [](<>) [`连接\内存\块\大小`](server-system-variables.html#sysvar_connection_memory_chunk_size)

    [](<>)[](<>)

    | 命令行格式 | `--连接内存块大小=#` |
    | ----- | ------------- |
    | 介绍 | 8.0.28 |
    | 系统变量 | `[connection_memory_chunk_size]（server system variables.html#sysvar_connection_memory_chunk_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8912` |
    | 最小值 | `0` |
    | 最大值 | `536870912` |
    | 单元 | `字节` |

    设置全局内存使用计数器更新的分块大小[`全局连接内存`](server-status-variables.html#statvar_Global_connection_memory)。只有当所有用户连接的总内存消耗量更改超过此值时，才会更新状态变量。通过设置禁用更新`连接\内存\块\大小=0`.

    内存计算不包括系统用户（如MySQL root用户）使用的任何内存。计算机使用的内存[`InnoDB`](innodb-storage-engine.html)缓冲池也不包括在内。

    你一定有[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)或[`超级的`](privileges-provided.html#priv_super)设置此变量的权限。

-   [](<>) [`连接\内存\限制`](server-system-variables.html#sysvar_connection_memory_limit)

    [](<>)[](<>)

    | 命令行格式 | `--连接内存限制=#` |
    | ----- | ------------ |
    | 介绍 | 8.0.28 |
    | 系统变量 | `[connection_memory_limit]（server system variables.html#sysvar_connection_memory_limit）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `18446744073709551615` |
    | 最小值 | `2097152` |
    | 最大值 | `18446744073709551615` |
    | 单元 | `字节` |

    设置单用户连接可以使用的最大内存量。如果任何用户连接使用的数量超过此数量，则会拒绝来自此连接的任何新查询[`ER_控制极限`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_conn_limit).

    此变量设置的限制不适用于系统用户或MySQL根帐户。计算机使用的内存[`InnoDB`](innodb-storage-engine.html)缓冲池也不包括在内。

    你一定有[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)或[`极好的`](privileges-provided.html#priv_super)设置此变量的权限。

-   [](<>) [`核心文件`](server-system-variables.html#sysvar_core_file)

    [](<>)[](<>)

    | 系统变量 | `[core_file]（服务器系统变量.html#sysvar_core_file）` |
    | ---- | -------------------------------------------- |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    如果服务器意外退出，是否写入核心文件。该变量由[`--核心文件`](server-options.html#option_mysqld_core-file)选项。

-   [](<>) [`create_admin_listener_thread`](server-system-variables.html#sysvar_create_admin_listener_thread)

    [](<>)[](<>)

    | 命令行格式 | `--create-admin-listener-thread[={OFF|ON}]` |
    | ----- | ------------------------------------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[create_admin_listener_thread](server-system-variables.html#sysvar_create_admin_listener_thread)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    是否为管理网络接口上的客户端连接使用专用侦听线程（请参阅[第 5.1.12.1 节，“连接接口”](connection-interfaces.html)）。默认是`离开`;也就是说，主界面上普通连接的管理器线程也处理管理界面的连接。

    根据平台类型和工作负载等因素，您可能会发现此变量的一个设置比另一个设置产生更好的性能。

    环境[`create_admin_listener_thread`](server-system-variables.html#sysvar_create_admin_listener_thread)如果没有效果[`管理员地址`](server-system-variables.html#sysvar_admin_address)未指定，因为在这种情况下，服务器不维护管理网络接口。

-   [](<>) [`cte_max_recursion_depth`](server-system-variables.html#sysvar_cte_max_recursion_depth)

    [](<>)[](<>)

    | 命令行格式 | `--cte-max-recursion-depth=#` |
    | ----- | ----------------------------- |
    | 系统变量 | `[cte_max_recursion_depth]（服务器系统变量.html#sysvar_cte_max_recursion_depth）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1000` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    公用表表达式 (CTE) 最大递归深度。服务器终止执行任何递归级别多于此变量值的 CTE。有关详细信息，请参阅[限制公用表表达式递归](with.html#common-table-expressions-recursion-limits).

-   [](<>) [`数据目录`](server-system-variables.html#sysvar_datadir)

    [](<>)[](<>)

    | 命令行格式 | `--datadir=dir_name` |
    | ----- | -------------------- |
    | 系统变量 | `[datadir]（服务器系统变量.html#sysvar_datadir）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |

    MySQL 服务器数据目录的路径。相对路径是相对于当前目录解析的。如果您希望服务器自动启动（即，在您无法提前知道当前目录的上下文中），最好指定[`数据目录`](server-system-variables.html#sysvar_datadir)值作为绝对路径。

-   [](<>) [`调试`](server-system-variables.html#sysvar_debug)

    [](<>)[](<>)

    | 命令行格式 | `--debug[=debug_options]` |
    | ----- | ------------------------- |
    | 系统变量 | `[调试]（服务器系统变量.html#sysvar_debug）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 (Unix) | `d:t:i:o,/tmp/mysqld.trace` |
    | 默认值 (Windows) | `d:t:i:O,\mysqld.trace` |

    此变量指示当前的调试设置。它仅适用于带有调试支持的服务器。初始值来自于实例的值[`--调试`](server-options.html#option_mysqld_debug)服务器启动时给出的选项。全局和会话值可以在运行时设置。

    设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

    分配一个以开头的值`+`要么`-`使值添加到当前值或从当前值中减去：

    ```
    mysql> SET debug = 'T';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+

    mysql> SET debug = '+P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | P:T     |
    +---------+

    mysql> SET debug = '-P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+
    ```

    有关详细信息，请参阅[第 5.9.4 节，“DBUG 包”](dbug-package.html).

-   [](<>) [`调试同步`](server-system-variables.html#sysvar_debug_sync)

    [](<>)[](<>)

    | 系统变量 | `[debug_sync]（服务器系统变量.html#sysvar_debug_sync）` |
    | ---- | ---------------------------------------------- |
    | 范围 | 会议 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |

    此变量是调试同步工具的用户界面。使用调试同步需要 MySQL 配置[`-DENABLE_DEBUG_SYNC=1`](https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html#option_cmake_enable_debug_sync) **制作**选项（见[第 2.9.7 节，“MySQL 源配置选项”](source-configuration-options.html)）。如果未编译 Debug Sync，则此系统变量不可用。

    全局变量值是只读的，并指示该工具是否已启用。默认情况下，Debug Sync 被禁用并且值[`调试同步`](server-system-variables.html#sysvar_debug_sync)是`离开`.如果服务器以[`--调试同步超时=*`ñ`*`](server-options.html#option_mysqld_debug-sync-timeout)， 在哪里*`ñ`*是一个大于 0 的超时值，Debug Sync 被启用并且值[`调试同步`](server-system-variables.html#sysvar_debug_sync)是`ON - 电流信号`后跟信号名称。还，*`ñ`*成为各个同步点的默认超时。

    会话值可以被任何用户读取，并且与全局变量具有相同的值。可以设置会话值来控制同步点。

    设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

    有关调试同步工具以及如何使用同步点的说明，请参阅[MySQL 内部结构：测试同步](https://dev.mysql.com/doc/internals/en/test-synchronization.html).

-   [](<>) [`default_authentication_plugin`](server-system-variables.html#sysvar_default_authentication_plugin)

    [](<>)[](<>)

    | 命令行格式 | `--default-authentication-plugin=plugin_name` |
    | ----- | --------------------------------------------- |
    | 已弃用 | 8.0.27 |
    | 系统变量 | `[default_authentication_plugin]（服务器系统变量.html#sysvar_default_authentication_plugin）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `cache_sha2_password` |
    | 有效值 | `mysql_native_password`<br/><br/>`sha256_password`<br/><br/>`cache_sha2_password` |

    默认身份验证插件。这必须是一个使用内部凭证存储的插件，所以这些值是允许的：

    -   `mysql_native_password`：使用 MySQL 原生密码；看[第 6.4.1.1 节，“本机可插入身份验证”](native-pluggable-authentication.html).

    -   `sha256_password`：使用 SHA-256 密码；看[第 6.4.1.3 节，“SHA-256 可插入身份验证”](sha256-pluggable-authentication.html).

    -   `cache_sha2_password`：使用 SHA-256 密码；看[第 6.4.1.2 节，“缓存 SHA-2 可插入身份验证”](caching-sha2-pluggable-authentication.html).

        有关哪些身份验证插件使用内部凭据存储的信息，请参阅[第 6.2.15 节，“密码管理”](password-management.html).

    笔记

    在 MySQL 8.0 中，`cache_sha2_password`是默认的身份验证插件，而不是`mysql_native_password`.有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性的信息，请参阅[缓存\_沙2\_密码作为首选身份验证插件](upgrading-from-previous-series.html#upgrade-caching-sha2-password).

    在 MySQL 8.0.27 之前，[`default_authentication_plugin`](server-system-variables.html#sysvar_default_authentication_plugin)值会影响服务器操作的这些方面：

    -   它确定服务器分配给由创建的新帐户的身份验证插件[`创建用户`](create-user.html)未明确指定身份验证插件的语句。

    -   对于使用以下形式的语句创建的帐户，服务器将该帐户与默认身份验证插件相关联，并为该帐户分配给定的密码，该密码根据该插件的要求进行哈希处理：

        ```
        CREATE USER ... IDENTIFIED BY 'cleartext password';
        ```

        从 MySQL 8.0.27 开始，它引入了多因素身份验证，[`default_authentication_plugin`](server-system-variables.html#sysvar_default_authentication_plugin)仍在使用，但与[`身份验证策略`](server-system-variables.html#sysvar_authentication_policy)系统变量。有关详细信息，请参阅[默认身份验证插件](pluggable-authentication.html#pluggable-authentication-default-plugin).因为这个被削弱的角色，[`default_authentication_plugin`](server-system-variables.html#sysvar_default_authentication_plugin)自 MySQL 8.0.27 起已弃用，并可能在未来的 MySQL 版本中删除。

-   [](<>) [`default_collat​​ion_for_utf8mb4`](server-system-variables.html#sysvar_default_collation_for_utf8mb4)

    [](<>)[](<>)

    | 系统变量 | `[default_collat​​ion_for_utf8mb4]（服务器系统变量.html#sysvar_default_collat​​ion_for_utf8mb4）` |
    | ---- | ---------------------------------------------------------------------------------------- |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 有效值 | `utf8mb4_0900_ai_ci`<br/><br/>`utf8mb4_general_ci` |

    供复制内部使用。此系统变量设置为默认排序规则`utf8mb4`字符集。变量的值从源复制到副本，以便副本可以正确处理源自具有不同默认排序规则的源的数据`utf8mb4`.此变量主要用于支持从 MySQL 5.7 或更早的复制源服务器到 MySQL 8.0 副本服务器的复制，或使用 MySQL 5.7 主节点和一个或多个 MySQL 8.0 辅助节点的组复制。默认排序规则`utf8mb4`在 MySQL 5.7 中是`utf8mb4_general_ci`， 但`utf8mb4_0900_ai_ci`在 MySQL 8.0 中。该变量在 MySQL 8.0 之前的版本中不存在，因此如果副本未收到该变量的值，则假定源来自早期版本并将值设置为先前的默认排序规则`utf8mb4_general_ci`.

    从 MySQL 8.0.18 开始，设置此系统变量的会话值不再是受限制的操作。

    默认`utf8mb4`排序规则用于以下语句：

    -   [`显示整理`](show-collation.html)和[`显示字符集`](show-character-set.html).

    -   [`创建表`](create-table.html)和[`更改表`](alter-table.html)有一个`字符集 utf8mb4`不带子句`整理`子句，用于表字符集或列字符集。

    -   [`创建数据库`](create-database.html)和[`更改数据库`](alter-database.html)有一个`字符集 utf8mb4`不带子句`整理`条款。

    -   任何包含以下形式的字符串文字的语句`_utf8mb4'*`一些文字`*'`没有`整理`条款。

-   [](<>) [`default_password_lifetime`](server-system-variables.html#sysvar_default_password_lifetime)

    [](<>)[](<>)

    | 命令行格式 | `--default-password-lifetime=#` |
    | ----- | ------------------------------- |
    | 系统变量 | `[default_password_lifetime]（服务器系统变量.html#sysvar_default_password_lifetime）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `65535` |

    此变量定义全局自动密码过期策略。默认[`default_password_lifetime`](server-system-variables.html#sysvar_default_password_lifetime)值为 0，即禁用自动密码过期。如果值[`default_password_lifetime`](server-system-variables.html#sysvar_default_password_lifetime)是一个正整数*`ñ`*，表示允许的密码寿命；必须每次更改密码*`ñ`*天。

    全局密码过期策略可以根据个人帐户的需要使用密码过期选项覆盖[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)陈述。看[第 6.2.15 节，“密码管理”](password-management.html).

-   [](<>) [`default_storage_engine`](server-system-variables.html#sysvar_default_storage_engine)

    [](<>)[](<>)

    | 命令行格式 | `--默认存储引擎=名称` |
    | ----- | ------------- |
    | 系统变量 | `[default_storage_engine]（服务器系统变量.html#sysvar_default_storage_engine）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `InnoDB` |

    表的默认存储引擎。看[第 16 章，*替代存储引擎*](storage-engines.html).此变量仅设置永久表的存储引擎。设置存储引擎`暂时的`表，设置[`default_tmp_storage_engine`](server-system-variables.html#sysvar_default_tmp_storage_engine)系统变量。

    要查看哪些存储引擎可用和启用，请使用[`显示引擎`](show-engines.html)声明或查询`INFORMATION_SCHEMA` [`引擎`](information-schema-engines-table.html)桌子。

    如果在服务器启动时禁用默认存储引擎，则必须将默认引擎设置为永久和`暂时的`表到不同的引擎，否则服务器不会启动。

-   [](<>) [`default_table_encryption`](server-system-variables.html#sysvar_default_table_encryption)

    [](<>)[](<>)

    | 命令行格式 | `--default-table-encryption[={OFF|ON}]` |
    | ----- | --------------------------------------- |
    | 介绍 | 8.0.16 |
    | 系统变量 | `[default_table_encryption]（服务器系统变量.html#sysvar_default_table_encryption）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    定义在创建模式和通用表空间时应用到它们的默认加密设置，而无需指定`加密`条款。

    这[`default_table_encryption`](server-system-variables.html#sysvar_default_table_encryption)变量仅适用于用户创建的模式和通用表空间。它不管理加密`mysql`系统表空间。

    设置运行时值[`default_table_encryption`](server-system-variables.html#sysvar_default_table_encryption)需要[`SYSTEM_VARIABLES_ADMIN`](privileges-provided.html#priv_system-variables-admin)和[`TABLE_ENCRYPTION_ADMIN`](privileges-provided.html#priv_table-encryption-admin)特权，或已弃用的[`极好的`](privileges-provided.html#priv_super)特权。

    [`default_table_encryption`](server-system-variables.html#sysvar_default_table_encryption)支持[`设置坚持`](set-variable.html)和[`SET PERSIST_ONLY`](set-variable.html)句法。看[第 5.1.9.3 节，“持久系统变量”](persisted-system-variables.html).

    有关详细信息，请参阅[为模式和通用表空间定义加密默认值](innodb-data-encryption.html#innodb-schema-tablespace-encryption-default).

-   [](<>) [`default_tmp_storage_engine`](server-system-variables.html#sysvar_default_tmp_storage_engine)

    [](<>)[](<>)

    | 命令行格式 | `--default-tmp-storage-engine=名称` |
    | ----- | --------------------------------- |
    | 系统变量 | `[default_tmp_storage_engine]（服务器系统变量.html#sysvar_default_tmp_storage_engine）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 枚举 |
    | 默认值 | `InnoDB` |

    默认存储引擎`暂时的`表（创建与[`创建临时表`](create-table.html)）。要为永久表设置存储引擎，请设置[`default_storage_engine`](server-system-variables.html#sysvar_default_storage_engine)系统变量。另请参阅该变量关于可能值的讨论。

    如果在服务器启动时禁用默认存储引擎，则必须将默认引擎设置为永久和`暂时的`表到不同的引擎，否则服务器不会启动。

-   [](<>) [`default_week_format`](server-system-variables.html#sysvar_default_week_format)

    [](<>)[](<>)

    | 命令行格式 | `--默认周格式=#` |
    | ----- | ----------- |
    | 系统变量 | `[default_week_format]（服务器系统变量.html#sysvar_default_week_format）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `7` |

    用于[`星期（）`](date-and-time-functions.html#function_week)功能。看[第 12.7 节，“日期和时间函数”](date-and-time-functions.html).

-   [](<>) [`delay_key_write`](server-system-variables.html#sysvar_delay_key_write)

    [](<>)[](<>)

    | 命令行格式 | `--delay-key-write[={OFF|ON|ALL}]` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[delay_key_write]（服务器系统变量.html#sysvar_delay_key_write）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `在` |
    | 有效值 | `离开`<br/><br/>`在`<br/><br/>`全部` |

    此变量指定如何使用延迟键写入。它仅适用于`MyISAM`表。延迟键写入会导致键缓冲区在写入之间不被刷新。也可以看看[第 16.2.1 节，“MyISAM 启动选项”](myisam-start.html).

    此变量可以具有以下值之一以影响对`DELAY_KEY_WRITE`可用于的表选项[`创建表`](create-table.html)陈述。

    | 选项 | 描述 |
    | --- | --- |
    | `离开` | `DELAY_KEY_WRITE`被忽略。 |
    | `在` | MySQL 尊重任何`DELAY_KEY_WRITE`中指定的选项[`创建表`](create-table.html)陈述。这是默认值。 |
    | `全部` | 所有新打开的表都被视为使用`DELAY_KEY_WRITE`选项启用。 |

    笔记

    如果将此变量设置为`全部`, 你不应该使用`MyISAM`来自另一个程序（例如另一个 MySQL 服务器或[**迈萨姆奇克**](myisamchk.html)) 使用表时。这样做会导致索引损坏。

    如果`DELAY_KEY_WRITE`为表启用，则不会在每次索引更新时刷新表的键缓冲区，而仅在表关闭时刷新。这大大加快了键的写入速度，但如果您使用此功能，您应该添加自动检查所有`MyISAM`表通过启动服务器[`myisam_recover_options`](server-system-variables.html#sysvar_myisam_recover_options)系统变量集（例如，`myisam_recover_options='备份，强制'`）。看[第 5.1.8 节，“服务器系统变量”](server-system-variables.html)， 和[第 16.2.1 节，“MyISAM 启动选项”](myisam-start.html).

    如果你开始[**mysqld**](mysqld.html)和[`--skip-new`](server-options.html#option_mysqld_skip-new),[`delay_key_write`](server-system-variables.html#sysvar_delay_key_write)被设定为`离开`.

    警告

    如果您启用外部锁定[`--外部锁定`](server-options.html#option_mysqld_external-locking)，对于使用延迟键写入的表，没有针对索引损坏的保护。

-   [](<>) [`延迟插入限制`](server-system-variables.html#sysvar_delayed_insert_limit)

    [](<>)[](<>)

    | 命令行格式 | `--延迟插入限制=#` |
    | ----- | ------------ |
    | 已弃用 | 是的 |
    | 系统变量 | `[delayed_insert_limit]（服务器系统变量.html#sysvar_delayed_insert_limit）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `100` |
    | 最小值 | `1` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    此系统变量已弃用（因为`延迟`不支持插入），您应该期望它在未来的版本中被删除。

-   [](<>) [`延迟插入超时`](server-system-variables.html#sysvar_delayed_insert_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--延迟插入超时=#` |
    | ----- | ------------ |
    | 已弃用 | 是的 |
    | 系统变量 | `[delayed_insert_timeout]（服务器系统变量.html#sysvar_delayed_insert_timeout）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `300` |

    此系统变量已弃用（因为`延迟`不支持插入），您应该期望它在未来的版本中被删除。

-   [](<>) [`延迟队列大小`](server-system-variables.html#sysvar_delayed_queue_size)

    [](<>)[](<>)

    | 命令行格式 | `--延迟队列大小=#` |
    | ----- | ------------ |
    | 已弃用 | 是的 |
    | 系统变量 | `[delayed_queue_size]（服务器系统变量.html#sysvar_delayed_queue_size）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1000` |
    | 最小值 | `1` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    此系统变量已弃用（因为`延迟`不支持插入），您应该期望它在未来的版本中被删除。

-   [](<>) [`disabled_storage_engines`](server-system-variables.html#sysvar_disabled_storage_engines)

    [](<>)[](<>)

    | 命令行格式 | `--disabled-storage-engines=engine[,engine]...` |
    | ----- | ----------------------------------------------- |
    | 系统变量 | `[disabled_storage_engines](server-system-variables.html#sysvar_disabled_storage_engines)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空字符串` |

    此变量指示哪些存储引擎不能用于创建表或表空间。例如，为了防止新`MyISAM`要么`联邦`从创建表开始，使用服务器选项文件中的这些行启动服务器：

    ```
    [mysqld]
    disabled_storage_engines="MyISAM,FEDERATED"
    ```

    默认，[`disabled_storage_engines`](server-system-variables.html#sysvar_disabled_storage_engines)为空（未禁用引擎），但可以将其设置为一个或多个引擎的逗号分隔列表（不区分大小写）。值中命名的任何引擎都不能用于创建表或表空间[`创建表`](create-table.html)要么[`创建表空间`](create-tablespace.html)，并且不能与[`改变表...引擎`](alter-table.html)要么[`改变表空间...引擎`](alter-tablespace.html)更改现有表或表空间的存储引擎。尝试这样做会导致[`ER_DISABLED_STORAGE_ENGINE`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_disabled_storage_engine)错误。

    [`disabled_storage_engines`](server-system-variables.html#sysvar_disabled_storage_engines)不限制现有表的其他 DDL 语句，例如[`创建索引`](create-index.html),[`截断表`](truncate-table.html),[`分析表`](analyze-table.html),[`删除表`](drop-table.html)， 要么[`删除表空间`](drop-tablespace.html).这允许平滑过渡，以便可以通过以下方式将使用禁用引擎的现有表或表空间迁移到允许的引擎[`更改表 ... 引擎 *`允许的引擎`*`](alter-table.html).

    允许设置[`default_storage_engine`](server-system-variables.html#sysvar_default_storage_engine)要么[`default_tmp_storage_engine`](server-system-variables.html#sysvar_default_tmp_storage_engine)系统变量到已禁用的存储引擎。这可能会导致应用程序行为不正常或失败，尽管这在开发环境中可能是一种有用的技术，用于识别使用禁用引擎的应用程序，以便可以修改它们。

    [`disabled_storage_engines`](server-system-variables.html#sysvar_disabled_storage_engines)如果使用以下任何选项启动服务器，则已禁用并且无效：[`- 初始化`](server-options.html#option_mysqld_initialize),[`--初始化不安全`](server-options.html#option_mysqld_initialize-insecure),[`--skip-grant-tables`](server-options.html#option_mysqld_skip-grant-tables).

    笔记

    环境[`disabled_storage_engines`](server-system-variables.html#sysvar_disabled_storage_engines)可能会导致问题[**mysql\_升级**](mysql-upgrade.html).有关详细信息，请参阅[第 4.4.5 节，“mysql_upgrade — 检查和升级 MySQL 表”](mysql-upgrade.html).

-   [](<>) [`disconnect_on_expired_pa​​ssword`](server-system-variables.html#sysvar_disconnect_on_expired_password)

    [](<>)[](<>)

    | 命令行格式 | `--disconnect-on-expired-password[={OFF|ON}]` |
    | ----- | --------------------------------------------- |
    | 系统变量 | `[disconnect_on_expired_pa​​ssword]（服务器系统变量.html#sysvar_disconnect_on_expired_pa​​ssword）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    此变量控制服务器如何处理密码过期的客户端：

    -   如果客户端表明它可以处理过期密码，则值为[`disconnect_on_expired_pa​​ssword`](server-system-variables.html#sysvar_disconnect_on_expired_password)无关紧要。服务器允许客户端连接，但将其置于沙盒模式。

    -   如果客户端不表示可以处理过期密码，则服务器根据值处理客户端[`disconnect_on_expired_pa​​ssword`](server-system-variables.html#sysvar_disconnect_on_expired_password)：

        -   如果[`disconnect_on_expired_pa​​ssword`](server-system-variables.html#sysvar_disconnect_on_expired_password): 启用，服务器断开客户端。

        -   如果[`disconnect_on_expired_pa​​ssword`](server-system-variables.html#sysvar_disconnect_on_expired_password): 被禁用，服务器允许客户端连接但将其置于沙盒模式。

        有关与过期密码处理相关的客户端和服务器设置交互的更多信息，请参阅[第 6.2.16 节，“过期密码的服务器处理”](expired-password-handling.html).

-   [](<>) [`div_precision_increment`](server-system-variables.html#sysvar_div_precision_increment)

    [](<>)[](<>)

    | 命令行格式 | `--div-精度-增量=#` |
    | ----- | --------------- |
    | 系统变量 | `[div_precision_increment]（服务器系统变量.html#sysvar_div_precision_increment）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `0` |
    | 最大值 | `30` |

    此变量表示数字的位数，通过该位数可以增加使用[`/`](arithmetic-functions.html#operator_divide)操作人员默认值为4。最小值和最大值分别为0和30。下面的示例说明了增加默认值的效果。

    ```
    mysql> SELECT 1/7;
    +--------+
    | 1/7    |
    +--------+
    | 0.1429 |
    +--------+
    mysql> SET div_precision_increment = 12;
    mysql> SELECT 1/7;
    +----------------+
    | 1/7            |
    +----------------+
    | 0.142857142857 |
    +----------------+
    ```

-   [](<>) [`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules)

    [](<>)[](<>)

    | 命令行格式 | `--拉网。日志错误筛选规则=值` |
    | ----- | ----------------- |
    | 系统变量 | `[dragnet.log_error_filter_rules]（server system variables.html#sysvar_dragnet.log_error_filter_rules）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `如果prio>=信息，则删除。如果存在源代码行，则取消设置源代码行。` |

    控制过滤器操作的过滤器规则`原木过滤网`错误日志筛选器组件。如果`原木过滤网`没有安装，[`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules)不可用。如果`原木过滤网`已安装但未启用，更改为[`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules)没有效果。

    默认值的效果类似于`日志\水槽\内部`设置为的过滤器[`日志错误详细度=2`](server-system-variables.html#sysvar_log_error_verbosity).

    从MySQL 8.0.12开始[`拉网。地位`](server-status-variables.html#statvar_dragnet.Status)可以参考状态变量来确定最近分配给的结果[`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules).

    在MySQL 8.0.12之前，成功分配给[`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules)在运行时生成一条注释，确认新值：

    ```
    mysql> SET GLOBAL dragnet.log_error_filter_rules = 'IF prio <> 0 THEN unset prio.';
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> SHOW WARNINGS\G
    *************************** 1. row ***************************
      Level: Note
       Code: 4569
    Message: filter configuration accepted:
             SET @@GLOBAL.dragnet.log_error_filter_rules=
             'IF prio!=ERROR THEN unset prio.';
    ```

    显示的值[`显示警告`](show-warnings.html)指示规则集成功解析并编译为内部形式后的“反编译”规范表示形式。从语义上讲，这个规范形式与分配给的值相同[`拉网。日志错误过滤规则`](server-system-variables.html#sysvar_dragnet.log_error_filter_rules)，但指定值和规范值之间可能存在一些差异，如前一示例所示：

    -   这个`<>`接线员改为`!=`.

    -   0的数字优先级更改为相应的优先级符号`错误`.

    -   可选空间将被删除。

        有关更多信息，请参阅[第5.4.2.4节，“错误日志过滤的类型”](error-log-filtering.html)和[第5.5.3节“错误日志组件”](error-log-components.html).

-   [](<>) [`结束标记在json中`](server-system-variables.html#sysvar_end_markers_in_json)

    [](<>)[](<>)

    | 命令行格式 | `--json中的结束标记[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[end_markers_in_json]（server system variables.html#sysvar_end_markers_in_json）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    优化器JSON输出是否应添加结束标记。看见[MySQL内部：结束\_标记\_在里面\_json系统变量](https://dev.mysql.com/doc/internals/en/end-markers-in-json-system-variable.html).

-   [](<>) [`均衡范围指数跳水极限`](server-system-variables.html#sysvar_eq_range_index_dive_limit)

    | 命令行格式 | `--均衡器范围指数下降极限=#` |
    | ----- | ----------------- |
    | 系统变量 | `[eq_range_index_dive_limit]（server system variables.html#sysvar_eq_range_index_dive_limit）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `200` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    此变量表示相等比较条件下的相等范围数，此时优化器在估计符合条件的行数时应该从使用索引潜水切换到索引统计。它适用于具有这两种等价形式之一的表达式的求值，其中优化器使用非唯一索引进行查找*`上校的名字`*价值观：

    ```
    col_name IN(val1, ..., valN)
    col_name = val1 OR ... OR col_name = valN
    ```

    在这两种情况下，表达式都包含*`N`*平等范围。优化器可以使用索引潜水或索引统计数据进行行估计。如果[`均衡范围指数跳水极限`](server-system-variables.html#sysvar_eq_range_index_dive_limit)如果大于0，优化器将使用现有的索引统计信息，而不是索引潜水（如果有）[`均衡范围指数跳水极限`](server-system-variables.html#sysvar_eq_range_index_dive_limit)或更多的平等范围。因此，允许使用指数潜水最多*`N`*相等范围，设置[`均衡范围指数跳水极限`](server-system-variables.html#sysvar_eq_range_index_dive_limit)到*`N`*+ 1. 禁用索引统计信息并始终使用索引潜水，无论*`N`*设置[`均衡范围指数跳水极限`](server-system-variables.html#sysvar_eq_range_index_dive_limit)到0。

    有关更多信息，请参阅[多值比较的等式区间优化](range-optimization.html#equality-range-optimization).

    要更新表索引统计信息以获得最佳估计，请使用[`分析表`](analyze-table.html).

-   [](<>) [`错误计数`](server-system-variables.html#sysvar_error_count)

    [](<>)[](<>)

    生成消息的最后一条语句导致的错误数。此变量为只读。看见[第13.7.7.17节“显示错误声明”](show-errors.html).

-   [](<>) [`事件调度程序`](server-system-variables.html#sysvar_event_scheduler)

    [](<>)[](<>)

    | 命令行格式 | `--事件计划程序[=值]` |
    | ----- | -------------- |
    | 系统变量 | `[event_scheduler]（server system variables.html#sysvar_event_scheduler）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `在…上` |
    | 有效值 | `在…上`<br/><br/>`关`<br/><br/>`残废` |

    此变量启用或禁用、启动或停止事件计划程序。可能的状态值为`在…上`, `关`和`残废`.打开事件计划程序`关`与禁用事件计划程序不同，后者需要将状态设置为`残废`。此变量及其对事件调度器操作的影响将在中进行更详细的讨论[第25.4.2节，“事件调度器配置”](events-configuration.html)

-   [](<>) [`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)

    [](<>)[](<>)

    | 命令行格式 | `--时间戳的显式默认值[={OFF | ON}]` |
    | ----- | -------------------------- |
    | 反对 | 对 |
    | 系统变量 | `[explicit_defaults_for_timestamp]（server system variables.html#sysvar_explicit_defaults_for_timestamp）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    此系统变量确定服务器是否为默认值和默认值启用某些非标准行为`无效的`-中的价值处理[`时间戳`](datetime.html)柱。默认情况下，[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)已启用，这将禁用非标准行为。禁用[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)结果是一个警告。

    从MySQL 8.0.18开始，设置此系统变量的会话值不再是一项受限操作。

    如果[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)如果禁用，服务器将启用非标准行为和句柄[`时间戳`](datetime.html)专栏如下：

    -   [`时间戳`](datetime.html)未使用`无效的`属性将使用`非空`属性给这样一列赋值`无效的`允许，并将列设置为当前时间戳。*例外*：从MySQL 8.0.22开始，正在尝试插入`无效的`进入声明为`时间戳不为空`由于错误而被拒绝。

    -   第一个[`时间戳`](datetime.html)表中的列，如果未使用`无效的`属性或显式`违约`或`更新`属性，将自动用`默认当前时间戳`和`更新当前时间戳时`属性。

    -   [`时间戳`](datetime.html)如果没有使用`无效的`属性或显式`违约`属性，则会自动声明为`默认值“0000-00-00:00:00”`（零时间戳）。对于没有为此类列指定显式值的插入行，将指定该列`'0000-00-00 00:00:00'`没有任何警告发生。

        取决于是严格的SQL模式还是[`没有约会`](sql-mode.html#sqlmode_no_zero_date)SQL模式已启用，默认值为`'0000-00-00 00:00:00'`可能无效。要知道[`传统的`](sql-mode.html#sqlmode_traditional)SQL模式包括严格模式和[`没有约会`](sql-mode.html#sqlmode_no_zero_date)看见[第5.1.11节，“服务器SQL模式”](sql-mode.html).

        刚才描述的非标准行为不受欢迎；希望在未来的MySQL版本中删除它们。

        如果[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)如果启用，服务器将禁用非标准行为和句柄[`时间戳`](datetime.html)专栏如下：

    -   不可能指定一个[`时间戳`](datetime.html)列a的值为`无效的`将其设置为当前时间戳。要分配当前时间戳，请将列设置为[`当前时间戳`](date-and-time-functions.html#function_current-timestamp)或同义词，如[`现在（）`](date-and-time-functions.html#function_now).

    -   [`时间戳`](datetime.html)未使用`非空`属性将使用`无效的`属性与许可`无效的`价值观给这样一列赋值`无效的`设置为`无效的`，而不是当前的时间戳。

    -   [`时间戳`](datetime.html)使用`非空`属性不允许`无效的`价值观对于指定`无效的`对于这样的列，如果启用了严格SQL模式，则结果是单行插入错误，或者`'0000-00-00 00:00:00'`为禁用严格SQL模式的多行插入插入。在任何情况下，都不会为列赋值`无效的`将其设置为当前时间戳。

    -   [`时间戳`](datetime.html)使用`非空`属性，并且没有显式`违约`属性被视为没有默认值。对于没有为此类列指定显式值的插入行，结果取决于SQL模式。如果启用了严格SQL模式，则会发生错误。如果未启用严格SQL模式，则会使用隐式默认值声明该列`'0000-00-00 00:00:00'`并发出警告。这与MySQL处理其他时态类型（如[`约会时间`](datetime.html).

    -   不[`时间戳`](datetime.html)列将自动声明为`默认当前时间戳`或`更新当前时间戳时`属性。必须明确指定这些属性。

    -   第一个[`时间戳`](datetime.html)表中的列的处理方式与[`时间戳`](datetime.html)第一列后面的列。

        如果[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)如果在服务器启动时禁用，则错误日志中将显示此警告：

    ```
    [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
    Please use --explicit_defaults_for_timestamp server option (see
    documentation for more details).
    ```

    如警告所示，要禁用不推荐的非标准行为，请启用[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)服务器启动时的系统变量。

    笔记

    [`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)因为它的唯一目的是允许对已弃用的[`时间戳`](datetime.html)将在未来的MySQL版本中删除的行为。当这些行为被移除时，请期待[`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)也被移除。

    有关更多信息，请参阅[第11.2.5节，“时间戳和日期时间的自动初始化和更新”](timestamp-initialization.html).

-   [](<>) [`外部用户`](server-system-variables.html#sysvar_external_user)

    [](<>)[](<>)

    | 系统变量 | `[external_user]（server system variables.html#sysvar_external_user）` |
    | ---- | -------------------------------------------------------------------- |
    | 范围 | 一场 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    验证过程中使用的外部用户名，由用于验证客户端的插件设置。使用本机（内置）MySQL身份验证，或者如果插件未设置值，则此变量为`无效的`看见[第6.2.19节“代理用户”](proxy-users.html).

-   [](<>) [`脸红`](server-system-variables.html#sysvar_flush)

    [](<>)[](<>)

    | 命令行格式 | `--刷新[={OFF | ON}]` |
    | ----- | ------------------- |
    | 系统变量 | `[flush]（server system variables.html#sysvar_flush）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果`在…上`，服务器在每个SQL语句之后刷新（同步）磁盘上的所有更改。通常，MySQL只在每个SQL语句之后才将所有更改写入磁盘，并让操作系统处理与磁盘的同步。看见[B.3.3.3节，“如果MySQL持续崩溃，该怎么办”](crashing.html).此变量设置为`在…上`如果你开始[**mysqld**](mysqld.html)和[`--冲洗`](server-options.html#option_mysqld_flush)选项

    笔记

    如果[`脸红`](server-system-variables.html#sysvar_flush)如果已启用，则[`冲水时间`](server-system-variables.html#sysvar_flush_time)不要紧，改变[`冲水时间`](server-system-variables.html#sysvar_flush_time)对潮水行为没有影响。

-   [](<>) [`冲水时间`](server-system-variables.html#sysvar_flush_time)

    [](<>)[](<>)

    | 命令行格式 | `--冲水时间=#` |
    | ----- | ---------- |
    | 系统变量 | `[flush_time]（server system variables.html#sysvar_flush_time）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |

    如果将其设置为非零值，则所有表都将每隔一天关闭一次[`冲水时间`](server-system-variables.html#sysvar_flush_time)秒释放资源并将未刷新的数据同步到磁盘。此选项最好仅在资源最少的系统上使用。

    笔记

    如果[`脸红`](server-system-variables.html#sysvar_flush)如果已启用，则[`冲水时间`](server-system-variables.html#sysvar_flush_time)不要紧，改变[`冲水时间`](server-system-variables.html#sysvar_flush_time)对潮水行为没有影响。

-   [](<>) [`外键检查`](server-system-variables.html#sysvar_foreign_key_checks)

    [](<>)[](<>)

    | 系统变量 | `[foreign_key_checks]（server system variables.html#sysvar_foreign_key_checks）` |
    | ---- | ------------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果设置为1（默认值），则会选中外键约束。如果设置为0，则会忽略外键约束，但有几个例外。重新创建已删除的表时，如果表定义不符合引用该表的外键约束，则会返回错误。同样，一个[`改变桌子`](alter-table.html)如果外键定义格式不正确，操作将返回错误。有关更多信息，请参阅[第13.1.20.5节，“外键约束”](create-table-foreign-keys.html).

    设置此变量对[`NDB`](mysql-cluster.html)桌子就像它为你做的那样`InnoDB`桌子。通常，您会在正常操作期间启用此设置，以强制执行[参照完整性](glossary.html#glos_referential_integrity)。禁用外键检查可能有助于重新加载`InnoDB`表的顺序与其父/子关系所需的顺序不同。看见[第13.1.20.5节，“外键约束”](create-table-foreign-keys.html).

    背景`外键检查`0也会影响数据定义语句：[`删除模式`](drop-database.html)删除架构，即使它包含的表具有外键，外键由架构外部的表引用，并且[`升降台`](drop-table.html)删除包含被其他表引用的外键的表。

    笔记

    背景`外键检查`to 1不会触发对现有表数据的扫描。因此，在[`外键检查=0`](server-system-variables.html#sysvar_foreign_key_checks)未验证其一致性。

    不允许删除外键约束所需的索引，即使在[`外键检查=0`](server-system-variables.html#sysvar_foreign_key_checks)。在删除索引之前，必须删除外键约束。

-   [](<>) [`布尔语法`](server-system-variables.html#sysvar_ft_boolean_syntax)

    [](<>)[](<>)

    | 命令行格式 | `--ft boolean syntax=name` |
    | ----- | -------------------------- |
    | 系统变量 | `[ft_boolean_syntax]（server system variables.html#sysvar_ft_boolean_syntax）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `+ -><()~*:""&|` |

    使用执行的布尔全文搜索支持的运算符列表`在布尔模式下`看见[第12.10.2节，“布尔全文搜索”](fulltext-boolean.html).

    默认变量值为`'+ -><()~*:""&|'`.更改值的规则如下：

    -   运算符功能由字符串中的位置决定。

    -   替换值必须为14个字符。

    -   每个字符必须是ASCII非字母数字字符。

    -   第一个或第二个字符必须是空格。

    -   除第11位和第12位的短语引用运算符外，不允许重复。这两个字符不必相同，但它们是唯一可能相同的两个字符。

    -   位置10、13和14（默认设置为`:`, `&`和`|`)保留供将来扩展。

-   [](<>) [`ft_max_word_len`](server-system-variables.html#sysvar_ft_max_word_len)

    [](<>)[](<>)

    | 命令行格式 | `--ft max word len=#` |
    | ----- | --------------------- |
    | 系统变量 | `[ft_max_word_len]（server system variables.html#sysvar_ft_max_word_len）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 最小值 | `10` |

    要包含在列表中的单词的最大长度`米萨姆` `全文`指数

    笔记

    `全文`索引`米萨姆`更改此变量后，必须重新生成表。使用`修理台*`tbl\_名称`*快`.

-   [](<>) [`ft_min_word_len`](server-system-variables.html#sysvar_ft_min_word_len)

    [](<>)[](<>)

    | 命令行格式 | `--ft min word len=#` |
    | ----- | --------------------- |
    | 系统变量 | `[ft_min_word_len]（server system variables.html#sysvar_ft_min_word_len）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |

    一个单词中要包含的最小长度`米萨姆` `全文`指数

    笔记

    `全文`索引`米萨姆`更改此变量后，必须重新生成表。使用`修理台*`tbl\_名称`*快`.

-   [](<>) [`ft_查询_扩展_限制`](server-system-variables.html#sysvar_ft_query_expansion_limit)

    [](<>)[](<>)

    | 命令行格式 | `--查询扩展限制=#` |
    | ----- | ------------ |
    | 系统变量 | `[ft_query_expansion_limit]（server system variables.html#sysvar_ft_query_expansion_limit）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `20` |
    | 最小值 | `0` |
    | 最大值 | `1000` |

    用于使用执行全文搜索的顶级匹配数`使用查询扩展`.

-   [](<>) [`ft_stopword_文件`](server-system-variables.html#sysvar_ft_stopword_file)

    [](<>)[](<>)

    | 命令行格式 | `--ft stopword file=文件名` |
    | ----- | ------------------------ |
    | 系统变量 | `[ft_stopword_文件]（server system variables.html#sysvar_ft_stopword_文件）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |

    从中读取用于全文搜索的停止字列表的文件`米萨姆`桌子。服务器在数据目录中查找该文件，除非提供了一个绝对路径名来指定不同的目录。使用文件中的所有单词；评论是*不*荣幸的。默认情况下，将使用内置的stopwords列表（如`存储/myisam/ft_静态。C`文件）。将此变量设置为空字符串(`''`)禁用停止字筛选。另见[第12.10.4节，“全文停止语”](fulltext-stopwords.html).

    笔记

    `全文`索引`米萨姆`更改此变量或stopword文件的内容后，必须重新生成表。使用`修理台*`tbl\_名称`*快`.

-   [](<>) [`一般日志`](server-system-variables.html#sysvar_general_log)

    [](<>)[](<>)

    | 命令行格式 | `--一般日志[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[general_log]（server system variables.html#sysvar_general_log）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否启用常规查询日志。该值可以是0（或`关`)禁用日志或1（或`在…上`)以启用日志。日志输出的目标由[`日志输出`](server-system-variables.html#sysvar_log_output)系统变量；如果该值为`没有一个`，即使启用了日志，也不会写入日志条目。

-   [](<>) [`常规日志文件`](server-system-variables.html#sysvar_general_log_file)

    [](<>)[](<>)

    | 命令行格式 | `--常规日志文件=文件名` |
    | ----- | -------------- |
    | 系统变量 | `[general_log_file]（server system variables.html#sysvar_general_log_file）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `主持人的名字。日志` |

    常规查询日志文件的名称。默认值为`*`主机名`*.日志`，但初始值可以随[`--常规日志文件`](server-system-variables.html#sysvar_general_log_file)选项

-   [](<>) [`生成的\u随机\u密码\u长度`](server-system-variables.html#sysvar_generated_random_password_length)

    [](<>)[](<>)

    | 命令行格式 | `--生成的随机密码长度=#` |
    | ----- | --------------- |
    | 介绍 | 8.0.18 |
    | 系统变量 | `[generated_random_password_length]（server system variables.html#sysvar_generated_random_password_length）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `20` |
    | 最小值 | `5.` |
    | 最大值 | `255` |

    为生成的随机密码中允许的最大字符数[`创建用户`](create-user.html), [`改变用户`](alter-user.html)和[`设置密码`](set-password.html)声明。有关更多信息，请参阅[随机密码生成](password-management.html#random-password-generation).

-   [](<>) [`全局连接内存限制`](server-system-variables.html#sysvar_global_connection_memory_limit)

    [](<>)[](<>)

    | 命令行格式 | `--全局连接内存限制=#` |
    | ----- | -------------- |
    | 介绍 | 8.0.28 |
    | 系统变量 | `[global_connection_memory_limit]（server system variables.html#sysvar_global_connection_memory_limit）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `18446744073709551615` |
    | 最小值 | `16777216` |
    | 最大值 | `18446744073709551615` |
    | 单元 | `字节` |

    设置所有用户连接可以使用的内存总量；就是，[`全局连接内存`](server-status-variables.html#statvar_Global_connection_memory)不应该超过这个数额。任何时候，用户的任何新查询都会被拒绝[`ER_GLOBAL_CONN_LIMIT`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_global_conn_limit).

    MySQL root用户等系统用户使用的内存包含在该总数中，但不计入断开限制；这样的用户永远不会因为内存使用而断开连接。

    计算机使用的内存[`InnoDB`](innodb-storage-engine.html)缓冲池不包括在总数中。

    你一定有[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)或[`超级的`](privileges-provided.html#priv_super)设置此变量的权限。

-   [](<>) [`全局连接内存跟踪`](server-system-variables.html#sysvar_global_connection_memory_tracking)

    [](<>)[](<>)

    | 命令行格式 | `--全局连接内存跟踪={TRUE | FALSE}` |
    | ----- | --------------------------- |
    | 介绍 | 8.0.28 |
    | 系统变量 | `[global_connection_memory_tracking]（server system variables.html#sysvar_global_connection_memory_tracking）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `错误的` |

    确定服务器是否计算[`全局连接内存`](server-status-variables.html#statvar_Global_connection_memory)。必须显式启用此变量；否则，不执行存储器计算，并且`全局连接内存`没有设定。

    你一定有[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)或[`超级的`](privileges-provided.html#priv_super)设置此变量的权限。

-   [](<>) [`组_concat_max_len`](server-system-variables.html#sysvar_group_concat_max_len)

    [](<>)[](<>)

    | 命令行格式 | `--康卡特马克斯莱恩集团=#` |
    | ----- | ---------------- |
    | 系统变量 | `[group_concat_max_len]（server system variables.html#sysvar_group_concat_max_len）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `4.` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    允许的最大结果长度（以字节为单位）[`组_CONCAT（）`](aggregate-functions.html#function_group-concat)作用默认值为1024。

-   [](<>) [`压缩`](server-system-variables.html#sysvar_have_compress)

    [](<>)[](<>)

    `对`如果`兹利布`压缩库可用于服务器，`不`如果不是的话。若否,详情为何?[`压缩（）`](encryption-functions.html#function_compress)和[`解压`](encryption-functions.html#function_uncompress)不能使用函数。

-   [](<>) [`动态加载`](server-system-variables.html#sysvar_have_dynamic_loading)

    [](<>)[](<>)

    `对`如果[**mysqld**](mysqld.html)支持动态加载插件，`不`如果不是的话。如果值为`不`，则不能使用以下选项：`--插件加载`在服务器启动时加载插件，或[`安装插件`](install-plugin.html)语句在运行时加载插件。

-   [](<>) [`你有几何学吗`](server-system-variables.html#sysvar_have_geometry)

    [](<>)[](<>)

    `对`如果服务器支持空间数据类型，`不`如果不是的话。

-   [](<>) [`你有openssl吗`](server-system-variables.html#sysvar_have_openssl)

    [](<>)[](<>)

    这个变量是[`你有吗`](server-system-variables.html#sysvar_have_ssl).

    从MySQL 8.0.26开始，[`你有openssl吗`](server-system-variables.html#sysvar_have_openssl)已弃用，可能会在未来的MySQL版本中删除。有关MySQL连接接口的TLS属性的信息，请使用[`tls_频道_状态`](performance-schema-tls-channel-status-table.html)桌子

-   [](<>) [`有你的个人资料吗`](server-system-variables.html#sysvar_have_profiling)

    [](<>)[](<>)

    `对`如果存在语句分析功能，`不`如果不是的话。如果存在，则`剖析`系统变量控制此功能是启用还是禁用。看见[第13.7.7.31节，“显示配置文件声明”](show-profiles.html).

    此变量已被弃用，您应该期望在将来的MySQL版本中删除它。

-   [](<>) [`有_查询_缓存`](server-system-variables.html#sysvar_have_query_cache)

    [](<>)[](<>)

    在MySQL 8.0.3中删除了查询缓存。[`有_查询_缓存`](server-system-variables.html#sysvar_have_query_cache)已弃用，其值始终为`不`，您应该期待它在未来的MySQL版本中被删除。

-   [](<>) [`有三把钥匙吗`](server-system-variables.html#sysvar_have_rtree_keys)

    [](<>)[](<>)

    `对`如果`雷`索引可用，`不`如果不是的话。（这些用于中的空间索引。）`米萨姆`（桌子）

-   [](<>) [`你有吗`](server-system-variables.html#sysvar_have_ssl)

    [](<>)[](<>)

    | 反对 | 8.0.26 |
    | --- | ------ |
    | 系统变量 | `[have_ssl]（server system variables.html#sysvar_have_ssl）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 有效值 | `对`（提供 SSL 支持）<br/><br/>`已禁用`（SSL 支持已编译到服务器中，但未使用启用它的必要选项启动服务器） |

    `是的`如果[**mysqld**](mysqld.html)支持 SSL 连接，`已禁用`如果服务器是使用 SSL 支持编译的，但没有使用适当的连接加密选项启动。有关详细信息，请参阅[第 2.9.6 节，“配置 SSL 库支持”](source-ssl-library-configuration.html).

    从 MySQL 8.0.26 开始，[`有_ssl`](server-system-variables.html#sysvar_have_ssl)已弃用，并可能在未来的 MySQL 版本中删除。有关 MySQL 连接接口的 TLS 属性的信息，请使用[`tls_channel_status`](performance-schema-tls-channel-status-table.html)桌子。

-   [](<>) [`have_statement_timeout`](server-system-variables.html#sysvar_have_statement_timeout)

    [](<>)[](<>)

    | 系统变量 | `[have_statement_timeout]（服务器系统变量.html#sysvar_have_statement_timeout）` |
    | ---- | ---------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |

    语句执行超时功能是否可用（见[语句执行时间优化器提示](optimizer-hints.html#optimizer-hints-execution-time)）。该值可以是`不`如果无法初始化此功能使用的后台线程。

-   [](<>) [`有符号链接`](server-system-variables.html#sysvar_have_symlink)

    [](<>)[](<>)

    `是的`如果启用了符号链接支持，`不`如果不。这在 Unix 上是必需的，以支持`数据目录`和`索引目录`表选项。如果服务器以[`--跳过符号链接`](server-options.html#option_mysqld_symbolic-links)选项，值为`已禁用`.

    这个变量在 Windows 上没有意义。

    笔记

    符号链接支持，以及[`--符号链接`](server-options.html#option_mysqld_symbolic-links)控制它的选项已被弃用；期望这些将在 MySQL 的未来版本中删除。此外，该选项默认禁用。相关的[`有符号链接`](server-system-variables.html#sysvar_have_symlink)系统变量也已被弃用，您应该期望它在 MySQL 的未来版本中被删除。

-   [](<>) [`histogram_generation_max_mem_size`](server-system-variables.html#sysvar_histogram_generation_max_mem_size)

    [](<>)[](<>)

    | 命令行格式 | `--histogram-generation-max-mem-size=#` |
    | ----- | --------------------------------------- |
    | 系统变量 | `[histogram_generation_max_mem_size]（服务器系统变量.html#sysvar_histogram_generation_max_mem_size）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `20000000` |
    | 最小值 | `1000000` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    可用于生成直方图统计信息的最大内存量。看[第 8.9.6 节，“优化器统计”](optimizer-statistics.html)， 和[第 13.7.3.1 节，“ANALYZE TABLE 语句”](analyze-table.html).

    设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`主机缓存大小`](server-system-variables.html#sysvar_host_cache_size)

    | 命令行格式 | `--主机缓存大小=#` |
    | ----- | ------------ |
    | 系统变量 | `[host_cache_size](服务器系统变量.html#sysvar_host_cache_size)` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1`（表示自动调整大小；不指定此文字值） |
    | 最小值 | `0` |
    | 最大值 | `65536` |

    MySQL服务器维护内存中的主机缓存，其中包含客户端主机名和IP地址信息，用于避免域名系统（DNS）查找；看见[第5.1.12.3节，“DNS查找和主机缓存”](host-cache.html).

    这个[`主机缓存大小`](server-system-variables.html#sysvar_host_cache_size)变量控制主机缓存的大小以及性能模式的大小[`主机缓存`](performance-schema-host-cache-table.html)公开缓存内容的表。背景[`主机缓存大小`](server-system-variables.html#sysvar_host_cache_size)有以下影响：

    -   将大小设置为0将禁用主机缓存。禁用缓存后，服务器会在每次客户端连接时执行DNS查找。

    -   在运行时更改大小会导致隐式主机缓存刷新操作，该操作会清除主机缓存，截断[`主机缓存`](performance-schema-host-cache-table.html)表，并取消阻止任何被阻止的主机。

        默认值自动调整为128，加1表示值为[`max_连接`](server-system-variables.html#sysvar_max_connections)最多500个，加上每增加20个超过500个[`max_连接`](server-system-variables.html#sysvar_max_connections)价值，上限为2000。

        使用[`--跳过主机缓存`](server-options.html#option_mysqld_skip-host-cache)选项类似于设置`主机缓存大小`系统变量为0，但`主机缓存大小`更灵活，因为它还可以用于在运行时调整、启用和禁用主机缓存，而不仅仅是在服务器启动时。

        使用启动服务器[`--跳过主机缓存`](server-options.html#option_mysqld_skip-host-cache)不阻止对的值进行运行时更改`主机缓存大小`，但这样的更改不会产生任何效果，并且缓存不会重新启用，即使`主机缓存大小`设置为大于0。

        设定`主机缓存大小`系统变量而非[`--跳过主机缓存`](server-options.html#option_mysqld_skip-host-cache)出于上一段给出的原因，首选该选项。此外`--跳过主机缓存`选项已被弃用，预计在MySQL的未来版本中删除该选项；在MySQL 8.0.29及更高版本中，使用该选项会引发警告。

-   [](<>) [`主机名`](server-system-variables.html#sysvar_hostname)

    [](<>)[](<>)

    | 系统变量 | `[hostname]（server system variables.html#sysvar_hostname）` |
    | ---- | ---------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    服务器在启动时将此变量设置为服务器主机名。根据RFC1034，从MySQL 8.0.17开始，最大长度为255个字符，在此之前为60个字符。

-   [](<>) [`身份`](server-system-variables.html#sysvar_identity)

    [](<>)[](<>)

    这个变量是[`最后插入id`](server-system-variables.html#sysvar_last_insert_id)变量它的存在是为了与其他数据库系统兼容。你可以通过阅读来了解它的价值`选择@标识`，并使用`设定身份`.

-   [](<>) [`init_connect`](server-system-variables.html#sysvar_init_connect)

    [](<>)[](<>)

    | 命令行格式 | `--init connect=name` |
    | ----- | --------------------- |
    | 系统变量 | `[init_connect]（server system variables.html#sysvar_init_connect）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成，用分号字符分隔。

    对于拥有[`连接管理`](privileges-provided.html#priv_connection-admin)特权（或不推荐的[`超级的`](privileges-provided.html#priv_super)特权）的内容[`init_connect`](server-system-variables.html#sysvar_init_connect)没有被执行。这样做是为了使[`init_connect`](server-system-variables.html#sysvar_init_connect)不会阻止所有客户端连接。例如，该值可能包含语法错误的语句，从而导致客户端连接失败。不执行[`init_connect`](server-system-variables.html#sysvar_init_connect)对于拥有[`连接管理`](privileges-provided.html#priv_connection-admin)或[`超级的`](privileges-provided.html#priv_super)特权使他们能够打开连接并修复[`init_connect`](server-system-variables.html#sysvar_init_connect)价值

    [`init_connect`](server-system-variables.html#sysvar_init_connect)任何密码过期的客户端用户都将跳过执行。这样做是因为这样的用户不能执行任意语句，因此[`init_connect`](server-system-variables.html#sysvar_init_connect)执行失败，导致客户端无法连接。跳过[`init_connect`](server-system-variables.html#sysvar_init_connect)执行允许用户连接并更改密码。

    服务器将丢弃由值为的语句生成的任何结果集[`init_connect`](server-system-variables.html#sysvar_init_connect).

-   [](<>) [`信息_模式_统计_到期`](server-system-variables.html#sysvar_information_schema_stats_expiry)

    [](<>)[](<>)

    | 命令行格式 | `--信息模式统计信息过期=#` |
    | ----- | ---------------- |
    | 系统变量 | `[information_schema_stats_expiry]（server system variables.html#sysvar_information_schema_stats_expiry）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `86400` |
    | 最小值 | `0` |
    | 最大值 | `31536000` |

    一些`信息模式`表包含提供表统计信息的列：

    ```
    STATISTICS.CARDINALITY
    TABLES.AUTO_INCREMENT
    TABLES.AVG_ROW_LENGTH
    TABLES.CHECKSUM
    TABLES.CHECK_TIME
    TABLES.CREATE_TIME
    TABLES.DATA_FREE
    TABLES.DATA_LENGTH
    TABLES.INDEX_LENGTH
    TABLES.MAX_DATA_LENGTH
    TABLES.TABLE_ROWS
    TABLES.UPDATE_TIME
    ```

    这些列表示动态表元数据；也就是说，随着表内容的变化而变化的信息。

    默认情况下，MySQL从`mysql。指数统计`和`mysql。表2.统计数据`查询列时使用字典表，这比直接从存储引擎检索统计信息更高效。如果缓存的统计数据不可用或已过期，MySQL将从存储引擎检索最新的统计数据，并将其缓存在`mysql。指数统计`和`mysql。表2.统计数据`字典表。后续查询检索缓存的统计信息，直到缓存的统计信息过期。

    这个[`信息_模式_统计_到期`](server-system-variables.html#sysvar_information_schema_stats_expiry)会话变量定义缓存的统计信息过期之前的时间段。默认值为86400秒（24小时），但时间段可以延长到一年。

    要随时更新给定表的缓存值，请使用[`分析表`](analyze-table.html).

    要始终直接从存储引擎检索最新统计信息并绕过缓存值，请设置[`信息_模式_统计_到期`](server-system-variables.html#sysvar_information_schema_stats_expiry)到`0`.

    查询统计信息列不会在中存储或更新统计信息`mysql。指数统计`和`mysql。表2.统计数据`在这些情况下，字典表：

    -   当缓存的统计信息尚未过期时。

    -   什么时候[`信息_模式_统计_到期`](server-system-variables.html#sysvar_information_schema_stats_expiry)设置为0。

    -   当服务器在中启动时[`只读`](server-system-variables.html#sysvar_read_only), [`超级只读`](server-system-variables.html#sysvar_super_read_only), [`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)或[`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)模式

    -   当查询还获取性能模式数据时。

        在知道事务是否提交之前，可以在多语句事务期间更新统计缓存。因此，缓存可能包含与已知提交状态不对应的信息。这可能发生在[`自动提交=0`](server-system-variables.html#sysvar_autocommit)还是之后[`开始交易`](commit.html).

    [`信息_模式_统计_到期`](server-system-variables.html#sysvar_information_schema_stats_expiry)是一个会话变量，每个客户端会话都可以定义自己的过期值。从存储引擎检索并由一个会话缓存的统计信息可用于其他会话。

    有关相关信息，请参阅[第8.2.3节，“优化信息\_“模式查询”](information-schema-optimization.html).

-   [](<>) [`初始化文件`](server-system-variables.html#sysvar_init_file)

    [](<>)[](<>)

    | 命令行格式 | `--init file=文件名` |
    | ----- | ----------------- |
    | 系统变量 | `[init_file]（server system variables.html#sysvar_init_file）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |

    如果指定，该变量将命名一个文件，其中包含在启动过程中要读取和执行的SQL语句。在MySQL 8.0.18之前，每条语句必须在一行上，并且不应包含注释。从MySQL 8.0.18开始，文件中语句的可接受格式被扩展以支持以下结构：

    -   `定界符；`，将语句分隔符设置为`;`性格

    -   `定界符$$`，将语句分隔符设置为`$$`字符序列。

    -   同一行上的多个语句，由当前分隔符分隔。

    -   多行语句。

    -   来自一家公司的评论`#`字符到行尾。

    -   来自一家公司的评论`--`按顺序排到最后。

    -   来自a的C风格评论`/*`顺序如下`*/`序列，包括多行。

    -   包含在任一单引号内的多行字符串文字(`'`)还是双引号(`"`)角色。

        如果服务器是用[`--初始化`](server-options.html#option_mysqld_initialize)或[`--初始化不安全`](server-options.html#option_mysqld_initialize-insecure)选项，它在bootstap模式下运行，一些功能不可用，从而限制了文件中允许的语句。这些包括与账户管理相关的报表（例如[`创建用户`](create-user.html)或[`授予`](grant.html))、复制和全局事务标识符。看见[第17.1.3节，“使用全局事务标识符的复制”](replication-gtids.html).

        从MySQL 8.0.17开始，服务器启动期间创建的线程用于创建数据字典、运行升级过程和创建系统表等任务。为了确保一个稳定且可预测的环境，执行这些线程时，某些系统变量的服务器内置默认值，例如[`sql_模式`](server-system-variables.html#sysvar_sql_mode), [`字符集服务器`](server-system-variables.html#sysvar_character_set_server), [`整理服务器`](server-system-variables.html#sysvar_collation_server), [`完成型`](server-system-variables.html#sysvar_completion_type), [`时间戳的显式默认值`](server-system-variables.html#sysvar_explicit_defaults_for_timestamp)和[`默认\u表\u加密`](server-system-variables.html#sysvar_default_table_encryption).

        这些线程还用于执行用指定的任何文件中的语句[`初始化文件`](server-system-variables.html#sysvar_init_file)在启动服务器时，这样的语句会使用服务器为这些系统变量内置的默认值执行。

-   `innodb_*`xxx`*`

    [`InnoDB`](innodb-storage-engine.html)系统变量列在[第15.14节，“InnoDB启动选项和系统变量”](innodb-parameters.html)。这些变量控制存储、内存使用和I/O模式的许多方面`InnoDB`桌子，而且现在特别重要`InnoDB`是默认的存储引擎。

-   [](<>) [`插入_id`](server-system-variables.html#sysvar_insert_id)

    [](<>)[](<>)

    以下程序将使用的值[`插入`](insert.html)或[`改变桌子`](alter-table.html)插入`自动增量`价值这主要用于二进制日志。

-   [](<>) [`交互超时`](server-system-variables.html#sysvar_interactive_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--交互超时=#` |
    | ----- | ---------- |
    | 系统变量 | `[interactive_timeout]（server system variables.html#sysvar_interactive_timeout）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `28800` |
    | 最小值 | `1.` |

    服务器在关闭交互连接之前等待活动的秒数。交互式客户端被定义为使用`客户互动`选择[`mysql_real_connect（）`](https://dev.mysql.com/doc/c-api/8.0/en/mysql-real-connect.html).另见[`等等，暂停`](server-system-variables.html#sysvar_wait_timeout).

-   [](<>) [`内部\u tmp\u磁盘\u存储\u引擎`](server-system-variables.html#sysvar_internal_tmp_disk_storage_engine)

    [](<>)[](<>)

    | 命令行格式 | `--内部tmp磁盘存储引擎=#` |
    | ----- | ----------------- |
    | 远离的 | 8.0.16 |
    | 系统变量 | `[internal_tmp_disk_storage_engine]（server system variables.html#sysvar_internal_tmp_disk_storage_engine）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `INNODB` |
    | 有效值 | `米萨姆`<br/><br/>`INNODB` |

    重要的

    在MySQL 8.0.16及更高版本中，磁盘上的内部临时表始终使用`InnoDB`存储引擎；从MySQL 8.0.16开始，该变量已被删除，因此不再受支持。

    在MySQL 8.0.16之前，此变量确定用于磁盘内部临时表的存储引擎（请参阅[磁盘上内部临时表的存储引擎](internal-temporary-tables.html#internal-temporary-tables-engines-disk)).允许值为`米萨姆`和`INNODB`（默认设置）。

-   [](<>) [`内部存储引擎`](server-system-variables.html#sysvar_internal_tmp_mem_storage_engine)

    [](<>)[](<>)

    | 命令行格式 | `--内部tmp mem存储引擎=#` |
    | ----- | ------------------- |
    | 系统变量 | `[internal_tmp_mem_storage_engine]（server system variables.html#sysvar_internal_tmp_mem_storage_engine）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 列举 |
    | 默认值 | `诱人的` |
    | 有效值 | `记忆力`<br/><br/>`诱人的` |

    内存内部临时表的存储引擎（请参阅[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html)).允许值为`诱人的`（默认）和`记忆力`.

    这个[优化器](glossary.html#glos_optimizer)使用由定义的存储引擎[`内部存储引擎`](server-system-variables.html#sysvar_internal_tmp_mem_storage_engine)用于内存中的内部临时表。

    在MySQL 8.0.27中，为[`内部存储引擎`](server-system-variables.html#sysvar_internal_tmp_mem_storage_engine)需要[`会话变量管理`](privileges-provided.html#priv_session-variables-admin)或[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)特权

-   [](<>) [`加入缓冲区大小`](server-system-variables.html#sysvar_join_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--连接缓冲区大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[join_buffer_size]（server system variables.html#sysvar_join_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `262144` |
    | 最小值 | `128` |
    | 最大值（Windows） | `4294967168` |
    | 最大值（其他64位平台） | `18446744073709551488` |
    | 最大值（其他32位平台） | `4294967168` |
    | 块大小 | `128` |

    用于普通索引扫描、范围索引扫描和不使用索引并因此执行完整表扫描的联接的缓冲区的最小大小。通常，获得快速连接的最佳方法是添加索引。增加价值[`加入缓冲区大小`](server-system-variables.html#sysvar_join_buffer_size)无法在添加索引时获得更快的完全联接。为两个表之间的每个完整联接分配一个联接缓冲区。对于不使用索引的多个表之间的复杂联接，可能需要多个联接缓冲区。

    默认值为256KB。最大允许设置为[`加入缓冲区大小`](server-system-variables.html#sysvar_join_buffer_size)是4GB−1.64位平台允许使用较大的值（64位窗口除外，对于64位窗口，较大的值被截断为4GB）−1）带有警告）。块大小为128，在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

    除非使用块嵌套循环或批处理密钥访问算法，否则将缓冲区设置为大于保存每个匹配行所需的缓冲区不会有任何好处，并且所有连接都至少分配最小大小，因此在全局将此变量设置为大值时要谨慎。最好保持全局设置较小，并仅在进行大连接的会话中将会话设置更改为较大的值，或者使用`集_VAR`优化器提示（请参阅[第8.9.3节，“优化器提示”](optimizer-hints.html))。如果全局大小大于大多数使用它的查询所需的大小，则内存分配时间可能会导致性能大幅下降。

    当使用块嵌套循环时，一个更大的联接缓冲区可能是有益的，直到第一个表中所有行的所有必需列都存储在联接缓冲区中为止。这取决于查询；最佳大小可能小于保存第一个表中的所有行。

    当使用批处理密钥访问时[`加入缓冲区大小`](server-system-variables.html#sysvar_join_buffer_size)定义对存储引擎的每个请求中密钥的批量大小。缓冲区越大，对连接操作右侧表的顺序访问就越多，这可以显著提高性能。

    有关联接缓冲的更多信息，请参阅[第8.2.1.7节，“嵌套循环连接算法”](nested-loop-joins.html).有关批量密钥访问的信息，请参阅[第8.2.1.12节，“块嵌套循环和批处理密钥访问连接”](bnl-bka-optimization.html).

-   [](<>) [`保持文件在创建状态`](server-system-variables.html#sysvar_keep_files_on_create)

    [](<>)[](<>)

    | 命令行格式 | `--保持文件处于创建状态[={OFF | on}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[keep_files_on_create]（server system variables.html#sysvar_keep_files_on_create）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果`米萨姆`表创建时没有`数据目录`选择权`MYD先生`文件在数据库目录中创建。默认情况下，如果`米萨姆`查找现有的`MYD先生`文件在这种情况下，它会覆盖它。这同样适用于`。我的我`没有创建的表的文件`索引目录`选项。要抑制此行为，请将[`keep_files_on_create`](server-system-variables.html#sysvar_keep_files_on_create)可变为`在`(1)，在这种情况下`MyISAM`不会覆盖现有文件并返回错误。默认值为`离开`(0)。

    如果一个`MyISAM`表是用`数据目录`要么`索引目录`选项和现有的`.MYD`要么`。我的我`找到文件时，MyISAM 总是返回错误。它不会覆盖指定目录中的文件。

-   [](<>) [`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--key-buffer-size=#` |
    | ----- | --------------------- |
    | 系统变量 | `[key_buffer_size]（服务器系统变量.html#sysvar_key_buffer_size）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8388608` |
    | 最小值 | `0` |
    | 最大值（64 位平台） | `OS_PER_PROCESS_LIMIT` |
    | 最大值（32 位平台） | `4294967295` |

    索引块`MyISAM`表被缓冲并由所有线程共享。[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)是用于索引块的缓冲区大小。密钥缓冲区也称为密钥缓存。

    最小允许设置为 0，但不能设置[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)动态为 0。设置为 0 会丢弃密钥缓存，这在运行时是不允许的。环境[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)只有在启动时才允许设置为 0，在这种情况下，不会初始化密钥缓存。改变[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)在运行时将值从 0 设置为允许的非零值会初始化密钥缓存。

    [`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)只能以 4096 字节的增量或倍数增加或减少。通过不合格值增加或减少设置会产生警告并将设置截断为合格值。

    最大允许设置[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)在 32 位平台上为 4GB-1。64 位平台允许更大的值。有效的最大大小可能会更小，具体取决于您的可用物理 RAM 和操作系统或硬件平台施加的每个进程的 RAM 限制。此变量的值表示请求的内存量。在内部，服务器会尽可能多地分配内存，但实际分配的内存可能会更少。

    您可以增加该值以获得更好的所有读取和多次写入的索引处理；在主要功能是运行 MySQL 的系统上，使用[`MyISAM`](myisam-storage-engine.html)存储引擎，机器总内存的 25% 是这个变量的可接受值。但是，您应该知道，如果您将值设置得太大（例如，超过机器总内存的 50%），您的系统可能会开始分页并变得非常慢。这是因为 MySQL 依赖操作系统为数据读取执行文件系统缓存，因此必须为文件系统缓存留出一些空间。您还应该考虑您可能使用的任何其他存储引擎的内存要求，除了[`MyISAM`](myisam-storage-engine.html).

    为了在同时写入多行时获得更快的速度，请使用[`锁定表`](lock-tables.html).看[第 8.2.5.1 节，“优化 INSERT 语句”](insert-optimization.html).

    您可以通过发出[`显示状态`](show-status.html)声明和审查[`Key_read_requests`](server-status-variables.html#statvar_Key_read_requests),[`Key_reads`](server-status-variables.html#statvar_Key_reads),[`Key_write_requests`](server-status-variables.html#statvar_Key_write_requests)， 和[`Key_writes`](server-status-variables.html#statvar_Key_writes)状态变量。（看[第 13.7.7 节，“显示语句”](show.html)。） 这`Key_reads/Key_read_requests`比率通常应小于 0.01。这`Key_writes/Key_write_requests`如果您主要使用更新和删除，则比率通常接近 1，但如果您倾向于执行同时影响许多行的更新，或者如果您使用`DELAY_KEY_WRITE`表选项。

    可以使用以下方法确定正在使用的密钥缓冲区的比例[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)与[`Key_blocks_unused`](server-status-variables.html#statvar_Key_blocks_unused)状态变量和缓冲区块大小，可从[`key_cache_block_size`](server-system-variables.html#sysvar_key_cache_block_size)系统变量：

    ```
    1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
    ```

    这个值是一个近似值，因为键缓冲区中的一些空间是在内部为管理结构分配的。影响这些结构的开销量的因素包括块大小和指针大小。随着块大小的增加，因开销而丢失的密钥缓冲区的百分比趋于降低。较大的块会导致较少的读取操作（因为每次读取会获得更多的键），但相反会增加未检查的键的读取量（如果块中并非所有键都与查询相关）。

    可以创建多个`MyISAM`密钥缓存。4GB 的大小限制单独适用于每个缓存，而不是作为一个组。看[第 8.10.2 节，“MyISAM 密钥缓存”](myisam-key-cache.html).

-   [](<>) [`key_cache_age_threshold`](server-system-variables.html#sysvar_key_cache_age_threshold)

    [](<>)[](<>)

    | 命令行格式 | `--key-cache-age-threshold=#` |
    | ----- | ----------------------------- |
    | 系统变量 | `[key_cache_age_threshold]（服务器系统变量.html#sysvar_key_cache_age_threshold）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `300` |
    | 最小值 | `100` |
    | 最大值（64位平台） | `18446744073709551516` |
    | 最大值（32位平台） | `4294967196` |
    | 块大小 | `100` |

    该值控制缓冲区从密钥缓存的热子列表降级到热子列表。值越低，降级速度越快。最小值为100。默认值为300。看见[第8.10.2节，“MyISAM密钥缓存”](myisam-key-cache.html).

    区块大小为100。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

-   [](<>) [`密钥缓存块大小`](server-system-variables.html#sysvar_key_cache_block_size)

    [](<>)[](<>)

    | 命令行格式 | `--密钥缓存块大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[key_cache_block_size]（server system variables.html#sysvar_key_cache_block_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `512` |
    | 最大值 | `16384` |
    | 块大小 | `512` |

    密钥缓存中块的大小（字节）。默认值为1024。看见[第8.10.2节，“MyISAM密钥缓存”](myisam-key-cache.html).

-   [](<>) [`密钥缓存分区限制`](server-system-variables.html#sysvar_key_cache_division_limit)

    [](<>)[](<>)

    | 命令行格式 | `--密钥缓存分区限制=#` |
    | ----- | -------------- |
    | 系统变量 | `[key_cache_division_limit]（server system variables.html#sysvar_key_cache_division_limit）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `100` |
    | 最小值 | `1.` |
    | 最大值 | `100` |

    密钥缓存缓冲区列表的热子列表和热子列表之间的分界点。该值是用于warm子列表的缓冲区列表的百分比。允许值范围为1到100。默认值为100。看见[第8.10.2节，“MyISAM密钥缓存”](myisam-key-cache.html).

-   [](<>) [`大文件支持`](server-system-variables.html#sysvar_large_files_support)

    [](<>)[](<>)

    | 系统变量 | `[large_files_support]（server system variables.html#sysvar_large_files_support）` |
    | ---- | -------------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |

    是否[**mysqld**](mysqld.html)使用支持大文件的选项编译。

-   [](<>) [`大页面`](server-system-variables.html#sysvar_large_pages)

    [](<>)[](<>)

    | 命令行格式 | `--大页面[={OFF | ON}]` |
    | ----- | -------------------- |
    | 系统变量 | `[large_pages]（server system variables.html#sysvar_large_pages）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 特定平台 | Linux |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否启用了大页面支持（通过[`--大页`](server-options.html#option_mysqld_large-pages)选项）。看见[第8.12.3.2节，“启用大页面支持”](large-page-support.html).

-   [](<>) [`大页面大小`](server-system-variables.html#sysvar_large_page_size)

    [](<>)[](<>)

    | 系统变量 | `[large_page_size]（server system variables.html#sysvar_large_page_size）` |
    | ---- | ------------------------------------------------------------------------ |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |

    如果启用了大页面支持，则会显示内存页面的大小。大内存页仅在Linux上受支持；在其他平台上，此变量的值始终为0。看见[第8.12.3.2节，“启用大页面支持”](large-page-support.html).

-   [](<>) [`最后插入id`](server-system-variables.html#sysvar_last_insert_id)

    [](<>)[](<>)

    要从中返回的值[`最后插入ID（）`](information-functions.html#function_last-insert-id).当您使用[`最后插入ID（）`](information-functions.html#function_last-insert-id)在更新表的语句中。设置此变量不会更新[`mysql_insert_id（）`](https://dev.mysql.com/doc/c-api/8.0/en/mysql-insert-id.html)C API函数。

-   [](<>) [`立法会信息`](server-system-variables.html#sysvar_lc_messages)

    [](<>)[](<>)

    | 命令行格式 | `--lc messages=name` |
    | ----- | -------------------- |
    | 系统变量 | `[lc_messages]（server system variables.html#sysvar_lc_messages）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `恩!` |

    用于错误消息的区域设置。默认值是`恩!`。服务器将参数转换为语言名称，并将其与[`lc_信息_目录`](server-system-variables.html#sysvar_lc_messages_dir)生成错误消息文件的位置。看见[第10.12节，“设置错误消息语言”](error-message-language.html).

-   [](<>) [`lc_信息_目录`](server-system-variables.html#sysvar_lc_messages_dir)

    [](<>)[](<>)

    | 命令行格式 | `--lc messages dir=dir_name` |
    | ----- | ---------------------------- |
    | 系统变量 | `[lc_messages_dir]（server system variables.html#sysvar_lc_messages_dir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    错误消息所在的目录。服务器将该值与的值一起使用[`立法会信息`](server-system-variables.html#sysvar_lc_messages)生成错误消息文件的位置。看见[第10.12节，“设置错误消息语言”](error-message-language.html).

-   [](<>) [`lc_时间_姓名`](server-system-variables.html#sysvar_lc_time_names)

    [](<>)[](<>)

    | 命令行格式 | `--lc时间名称=值` |
    | ----- | ------------ |
    | 系统变量 | `[lc_time_names]（server system variables.html#sysvar_lc_time_names）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |

    此变量指定控制用于显示日期和月份名称和缩写的语言的语言环境。该变量影响从[`日期格式（）`](date-and-time-functions.html#function_date-format),[`日期名称（）`](date-and-time-functions.html#function_dayname)和[`月名()`](date-and-time-functions.html#function_monthname)职能。语言环境名称是 POSIX 样式的值，例如`'ja_JP'`要么`'pt_BR'`.默认值为`'en_US'`无论您的系统的区域设置如何。有关详细信息，请参阅[第 10.16 节，“MySQL 服务器语言环境支持”](locale-support.html).

-   [](<>) [`执照`](server-system-variables.html#sysvar_license)

    [](<>)[](<>)

    | 系统变量 | `[许可证]（服务器系统变量.html#sysvar_license）` |
    | ---- | ------------------------------------ |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `GPL` |

    服务器拥有的许可证类型。

-   [](<>) [`local_infile`](server-system-variables.html#sysvar_local_infile)

    [](<>)[](<>)

    | 命令行格式 | `--local-infile[={OFF|ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[local_infile]（服务器系统变量.html#sysvar_local_infile）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    此变量控制服务器端`当地的`能力[`加载数据`](load-data.html)陈述。取决于[`local_infile`](server-system-variables.html#sysvar_local_infile)设置，服务器拒绝或允许客户端加载本地数据`当地的`在客户端启用。

    明确导致服务器拒绝或允许[`本地加载数据`](load-data.html)语句（无论在构建时或运行时如何配置客户端程序和库），开始[**mysqld**](mysqld.html)和[`local_infile`](server-system-variables.html#sysvar_local_infile)分别禁用或启用。[`local_infile`](server-system-variables.html#sysvar_local_infile)也可以在运行时设置。有关详细信息，请参阅[第 6.1.6 节，“本地加载数据的安全注意事项”](load-data-local-security.html).

-   [](<>) [`lock_wait_timeout`](server-system-variables.html#sysvar_lock_wait_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--lock-wait-timeout=#` |
    | ----- | ----------------------- |
    | 系统变量 | `[lock_wait_timeout]（服务器系统变量.html#sysvar_lock_wait_timeout）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `31536000` |
    | 最小值 | `1` |
    | 最大值 | `31536000` |

    此变量指定尝试获取元数据锁的超时时间（以秒为单位）。允许值范围为 1 到 31536000（1 年）。默认值为 31536000。

    此超时适用于所有使用元数据锁的语句。这些包括对表、视图、存储过程和存储函数的 DML 和 DDL 操作，以及[`锁定表`](lock-tables.html),[`带读锁的刷新表`](flush.html#flush-tables-with-read-lock)， 和[`处理程序`](handler.html)陈述。

    此超时不适用于对系统表的隐式访问`mysql`数据库，例如由[`授予`](grant.html)要么[`撤销`](revoke.html)语句或表日志记录语句。超时确实适用于直接访问的系统表，例如[`选择`](select.html)要么[`更新`](update.html).

    超时值分别适用于每个元数据锁定尝试。一个给定的语句可能需要多个锁，因此该语句的阻塞时间可能比[`lock_wait_timeout`](server-system-variables.html#sysvar_lock_wait_timeout)报告超时错误之前的值。当发生锁超时时，[`ER_LOCK_WAIT_TIMEOUT`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_lock_wait_timeout)被报道。

    [`lock_wait_timeout`](server-system-variables.html#sysvar_lock_wait_timeout)还定义了一个时间量[`为备份锁定实例`](lock-instance-for-backup.html)语句在放弃之前等待锁定。

-   [](<>) [`锁定内存`](server-system-variables.html#sysvar_locked_in_memory)

    [](<>)[](<>)

    | 系统变量 | `[locked_in_memory]（服务器系统变量.html#sysvar_locked_in_memory）` |
    | ---- | ---------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    无论[**mysqld**](mysqld.html)被锁定在记忆中[`--内存锁`](server-options.html#option_mysqld_memlock).

-   [](<>) [`日志错误`](server-system-variables.html#sysvar_log_error)

    [](<>)[](<>)

    | 命令行格式 | `--log-error[=file_name]` |
    | ----- | ------------------------- |
    | 系统变量 | `[log_error]（服务器系统变量.html#sysvar_log_error）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |

    默认错误日志目标。如果目标是控制台，则值为`标准错误`.否则，目标是一个文件，而[`日志错误`](server-system-variables.html#sysvar_log_error)值是文件名。看[第 5.4.2 节，“错误日志”](error-log.html).

-   [](<>) [`日志错误服务`](server-system-variables.html#sysvar_log_error_services)

    [](<>)[](<>)

    | 命令行格式 | `--log-error-services=值` |
    | ----- | ------------------------ |
    | 系统变量 | `[log_error_services]（服务器系统变量.html#sysvar_log_error_services）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `日志过滤器内部；log_sink_internal` |

    启用错误日志记录的组件。该变量可能包含一个包含 0、1 或许多元素的列表。在后一种情况下，元素可以用分号或（从 MySQL 8.0.12 开始）逗号分隔，可选地后跟空格。给定设置不能同时使用分号和逗号分隔符。组件顺序很重要，因为服务器按列出的顺序执行组件。中命名的任何可加载（非内置）组件[`日志错误服务`](server-system-variables.html#sysvar_log_error_services)值必须首先安装[`安装组件`](install-component.html).有关详细信息，请参阅[第 5.4.2.1 节，“错误日志配置”](error-log-configuration.html).

-   [](<>) [`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list)

    [](<>)[](<>)

    | 命令行格式 | `--log-error-suppression-list=value` |
    | ----- | ------------------------------------ |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[log_error_suppression_list]（服务器系统变量.html#sysvar_log_error_suppression_list）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空字符串` |

    这[`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list)系统变量适用于用于错误日志的事件，并指定当它们发生时要抑制的事件，优先级为`警告`要么`信息`.例如，如果某个特定类型的警告在错误日志中被认为是不受欢迎的“噪音”，因为它经常发生但并不令人感兴趣，则可以将其抑制。此变量影响由`log_filter_internal`错误日志过滤器组件，默认开启（见[第 5.5.3 节，“错误日志组件”](error-log-components.html)）。如果`log_filter_internal`被禁用，[`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list)没有效果。

    这[`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list)value 可以是没有抑制的空字符串，也可以是一个或多个逗号分隔值的列表，指示要抑制的错误代码。错误代码可以以符号或数字形式指定。一个数字代码可以指定有或没有`我的-`字首。数字部分的前导零不重要。允许的代码格式示例：

    ```
    ER_SERVER_SHUTDOWN_COMPLETE
    MY-000031
    000031
    MY-31
    31
    ```

    为了可读性和可移植性，符号值优于数值。有关允许的错误符号和数字的信息，请参阅[MySQL 8.0 错误信息参考](https://dev.mysql.com/doc/mysql-errors/8.0/en/).

    的效果[`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list)与[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity).有关其他信息，请参阅[第 5.4.2.5 节，“基于优先级的错误日志过滤（日志\_筛选\_内部的）”](error-log-priority-based-filtering.html).

-   [](<>) [`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)

    [](<>)[](<>)

    | 命令行格式 | `--log-error-verbosity=#` |
    | ----- | ------------------------- |
    | 系统变量 | `[log_error_verbosity]（服务器系统变量.html#sysvar_log_error_verbosity）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2` |
    | 最小值 | `1` |
    | 最大值 | `3` |

    这[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)系统变量指定处理用于错误日志的事件的详细程度。此变量影响由`log_filter_internal`错误日志过滤器组件，默认开启（见[第 5.5.3 节，“错误日志组件”](error-log-components.html)）。如果`log_filter_internal`被禁用，[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)没有效果。

    用于错误日志的事件的优先级为`错误`,`警告`， 要么`信息`.[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)根据允许写入日志的消息的优先级来控制详细程度，如下表所示。

    | 日志\_错误\_详细值 | 允许的消息优先级 |
    | ----------- | -------- |
    | 1 | `错误` |
    | 2 | `错误`,`警告` |
    | 3 | `错误`,`警告`,`信息` |

    还有一个优先级`系统`.关于非错误情况的系统消息将打印到错误日志中，而不管[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)价值。这些消息包括启动和关闭消息，以及对设置的一些重大更改。

    的效果[`log_error_verbosity`](server-system-variables.html#sysvar_log_error_verbosity)与[`log_error_suppression_list`](server-system-variables.html#sysvar_log_error_suppression_list).有关其他信息，请参阅[第 5.4.2.5 节，“基于优先级的错误日志过滤（日志\_筛选\_内部的）”](error-log-priority-based-filtering.html).

-   [](<>) [`日志输出`](server-system-variables.html#sysvar_log_output)

    [](<>)[](<>)

    | 命令行格式 | `--日志输出=名称` |
    | ----- | ----------- |
    | 系统变量 | `[log_output]（服务器系统变量.html#sysvar_log_output）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 放 |
    | 默认值 | `文件` |
    | 有效值 | `桌子`<br/><br/>`文件`<br/><br/>`没有` |

    一般查询日志和慢查询日志输出的一个或多个目的地。该值是从列表中选择的一个或多个逗号分隔的单词`桌子`,`文件`， 和`没有`.`桌子`选择记录到[`通用日志`](server-system-variables.html#sysvar_general_log)和`慢日志`中的表`mysql`系统架构。`文件`选择记录到日志文件。`没有`禁用日志记录。如果`没有`存在于值中，它优先于存在的任何其他单词。`桌子`和`文件`可以同时选择两个日志输出目标。

    此变量选择日志输出目标，但不启用日志输出。为此，请启用[`通用日志`](server-system-variables.html#sysvar_general_log)和[`慢查询日志`](server-system-variables.html#sysvar_slow_query_log)系统变量。为了`文件`伐木[`general_log_file`](server-system-variables.html#sysvar_general_log_file)和[`慢查询日志文件`](server-system-variables.html#sysvar_slow_query_log_file)系统变量确定日志文件的位置。有关详细信息，请参阅[第 5.4.1 节，“选择通用查询日志和慢查询日志输出目标”](log-destinations.html).

-   [](<>) [`log_queries_not_using_indexes`](server-system-variables.html#sysvar_log_queries_not_using_indexes)

    [](<>)[](<>)

    | 命令行格式 | `--log-queries-not-using-indexes[={OFF|ON}]` |
    | ----- | -------------------------------------------- |
    | 系统变量 | `[log_queries_not_using_indexes]（服务器系统变量.html#sysvar_log_queries_not_using_indexes）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    如果您在启用慢查询日志的情况下启用此变量，则会记录预期检索所有行的查询。看[第 5.4.5 节，“慢查询日志”](slow-query-log.html).此选项不一定意味着不使用索引。例如，使用全索引扫描的查询使用索引但会被记录，因为索引不会限制行数。

-   [](<>) [`log_raw`](server-system-variables.html#sysvar_log_raw)

    [](<>)[](<>)

    | 命令行格式 | `--log-raw[={OFF|ON}]` |
    | ----- | ---------------------- |
    | 系统变量 (≥ 8.0.19) | `[log_raw]（服务器系统变量.html#sysvar_log_raw）` |
    | 范围（≥8.0.19） | 全球的 |
    | 动态（≥ 8.0.19） | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 (≥ 8.0.19) | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    这[`log_raw`](server-system-variables.html#sysvar_log_raw)系统变量最初设置为[`--log-raw`](server-options.html#option_mysqld_log-raw)选项。有关详细信息，请参阅该选项的说明。系统变量也可以在运行时设置以更改密码屏蔽行为。

-   [](<>) [`log_slow_admin_statements`](server-system-variables.html#sysvar_log_slow_admin_statements)

    [](<>)[](<>)

    | 命令行格式 | `--log-slow-admin-statements[={OFF|ON}]` |
    | ----- | ---------------------------------------- |
    | 系统变量 | `[log_slow_admin_statements]（服务器系统变量.html#sysvar_log_slow_admin_statements）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    在写入慢查询日志的语句中包含慢速管理语句。行政声明包括[`更改表`](alter-table.html),[`分析表`](analyze-table.html),[`检查表`](check-table.html),[`创建索引`](create-index.html),[`删除索引`](drop-index.html),[`优化表`](optimize-table.html)， 和[`维修台`](repair-table.html).

-   [](<>) [`log_slow_extra`](server-system-variables.html#sysvar_log_slow_extra)

    [](<>)[](<>)

    | 命令行格式 | `--log-slow-extra[={OFF|ON}]` |
    | ----- | ----------------------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[log_slow_extra]（服务器系统变量.html#sysvar_log_slow_extra）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    如果启用了慢查询日志并且输出目标包括`文件`，服务器将附加字段写入日志文件行，以提供有关慢速语句的信息。看[第 5.4.5 节，“慢查询日志”](slow-query-log.html).`桌子`输出不受影响。

-   [](<>) [`log_syslog`](server-system-variables.html#sysvar_log_syslog)

    [](<>)[](<>)

    | 命令行格式 | `--log-syslog[={OFF|ON}]` |
    | ----- | ------------------------- |
    | 已弃用 | 是（在 8.0.13 中删除） |
    | 系统变量 | `[log_syslog]（服务器系统变量.html#sysvar_log_syslog）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在`（启用错误记录到系统日志时） |

    在 MySQL 8.0 之前，此变量控制是否将错误记录到系统日志（Windows 上的事件日志，以及`系统日志`在 Unix 和类 Unix 系统上）。

    在 MySQL 8.0 中，`log_sink_syseventlog`log 组件将错误记录到系统日志中（参见[第 5.4.2.8 节，“错误记录到系统日志”](error-log-syslog.html))，因此可以通过将该组件添加到[`日志错误服务`](server-system-variables.html#sysvar_log_error_services)系统变量。[`log_syslog`](server-system-variables.html#sysvar_log_syslog)已移除。（在 MySQL 8.0.13 之前，[`log_syslog`](server-system-variables.html#sysvar_log_syslog)存在但已弃用且无效。）

-   [](<>) [`log_syslog_facility`](server-system-variables.html#sysvar_log_syslog_facility)

    [](<>)[](<>)

    | 命令行格式 | `--log-syslog-facility=值` |
    | ----- | ------------------------- |
    | 已移除 | 8.0.13 |
    | 系统变量 | `[log_syslog_facility]（服务器系统变量.html#sysvar_log_syslog_facility）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `守护进程` |

    此变量在 MySQL 8.0.13 中被删除并替换为[`syseventlog.facility`](server-system-variables.html#sysvar_syseventlog.facility).

-   [](<>) [`log_syslog_include_pid`](server-system-variables.html#sysvar_log_syslog_include_pid)

    [](<>)[](<>)

    | 命令行格式 | `--log-syslog-include-pid[={OFF|ON}]` |
    | ----- | ------------------------------------- |
    | 已移除 | 8.0.13 |
    | 系统变量 | `[log_syslog_include_pid]（服务器系统变量.html#sysvar_log_syslog_include_pid）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    此变量在 MySQL 8.0.13 中被删除并替换为[`syseventlog.include_pid`](server-system-variables.html#sysvar_syseventlog.include_pid).

-   [](<>) [`log_syslog_tag`](server-system-variables.html#sysvar_log_syslog_tag)

    [](<>)[](<>)

    | 命令行格式 | `--log-syslog-tag=标签` |
    | ----- | --------------------- |
    | 已移除 | 8.0.13 |
    | 系统变量 | `[log_syslog_tag]（服务器系统变量.html#sysvar_log_syslog_tag）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空字符串` |

    此变量在 MySQL 8.0.13 中被删除并替换为[`syseventlog.tag`](server-system-variables.html#sysvar_syseventlog.tag).

-   [](<>) [`日志时间戳`](server-system-variables.html#sysvar_log_timestamps)

    [](<>)[](<>)

    | 命令行格式 | `--日志时间戳=#` |
    | ----- | ----------- |
    | 系统变量 | `[log_timestamps]（服务器系统变量.html#sysvar_log_timestamps）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `世界标准时间` |
    | 有效值 | `世界标准时间`<br/><br/>`系统` |

    此变量控制写入错误日志的消息中时间戳的时区，以及写入文件的一般查询日志和慢查询日志消息。不影响一般查询日志和慢查询日志消息写入表的时区（`mysql.general_log`,`mysql.slow_log`）。从这些表中检索的行可以从本地系统时区转换为任何所需的时区[`转换_TZ()`](date-and-time-functions.html#function_convert-tz)或通过设置会话[`时区`](server-system-variables.html#sysvar_time_zone)系统变量。

    允许[`日志时间戳`](server-system-variables.html#sysvar_log_timestamps)值是`世界标准时间`（默认）和`系统`（本地系统时区）。

    时间戳使用 ISO 8601 / RFC 3339 格式编写：`*`YYYY-MM-DD`*T*`hh:mm:ss.uuuuuu`*`加上一个尾值`Z`表示祖鲁时间 (UTC) 或`±hh:mm`（从 UTC 偏移）。

-   [](<>) [`log_throttle_queries_not_using_indexes`](server-system-variables.html#sysvar_log_throttle_queries_not_using_indexes)

    [](<>)[](<>)

    | 命令行格式 | `--log-throttle-queries-not-using-indexes=#` |
    | ----- | -------------------------------------------- |
    | 系统变量 | `[log_throttle_queries_not_using_indexes]（服务器系统变量.html#sysvar_log_throttle_queries_not_using_indexes）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |

    如果[`log_queries_not_using_indexes`](server-system-variables.html#sysvar_log_queries_not_using_indexes)启用时，[`log_throttle_queries_not_using_indexes`](server-system-variables.html#sysvar_log_throttle_queries_not_using_indexes)变量限制每分钟可以写入慢查询日志的此类查询的数量。值 0（默认值）表示“无限制”。有关详细信息，请参阅[第 5.4.5 节，“慢查询日志”](slow-query-log.html).

-   [](<>) [`long_query_time`](server-system-variables.html#sysvar_long_query_time)

    [](<>)[](<>)

    | 命令行格式 | `--long-query-time=#` |
    | ----- | --------------------- |
    | 系统变量 | `[long_query_time](server-system-variables.html#sysvar_long_query_time)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 数字 |
    | 默认值 | `10` |
    | 最小值 | `0` |

    如果查询花费的时间超过这么多秒，服务器会增加[`慢查询`](server-status-variables.html#statvar_Slow_queries)状态变量。如果启用了慢查询日志，则查询将记录到慢查询日志文件中。该值是实时测量的，而不是 CPU 时间，因此在负载较轻的系统上低于阈值的查询可能会在负载较重的系统上高于阈值。的最小值和默认值[`long_query_time`](server-system-variables.html#sysvar_long_query_time)分别为 0 和 10。该值可以指定为微秒的分辨率。看[第 5.4.5 节，“慢查询日志”](slow-query-log.html).

    此变量的较小值会导致更多语句被视为长时间运行，从而导致慢查询日志需要更多空间。对于非常小的值（小于一秒），日志可能会在很短的时间内变得非常大。增加被认为是长时间运行的语句的数量也可能导致 MySQL Enterprise Monitor 中“长时间运行的进程数量过多”警报的误报，尤其是在启用组复制的情况下。由于这些原因，非常小的值应仅在测试环境中使用，或者在生产环境中仅在短时间内使用。

-   [](<>) [`低优先级更新`](server-system-variables.html#sysvar_low_priority_updates)

    [](<>)[](<>)

    | 命令行格式 | `--低优先级更新[={OFF|ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[low_priority_updates]（服务器系统变量.html#sysvar_low_priority_updates）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果设置为`1.`全部的[`插入`](insert.html),[`使现代化`](update.html),[`删去`](delete.html)和`锁表写入`语句将一直等待，直到没有挂起的语句[`选择`](select.html)或`锁表读取`在受影响的桌子上。同样的效果也可以通过使用`{插入|替换|删除|更新}低优先级。。。`只降低一个查询的优先级。此变量仅影响仅使用表级锁定的存储引擎（例如`米萨姆`,`记忆力`和`合并`).看到了吗[第8.11.2节，“表格锁定问题”](table-locking.html).

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`小写文件系统`](server-system-variables.html#sysvar_lower_case_file_system)

    [](<>)[](<>)

    | 系统变量 | `[lower_case_file_system]（server system variables.html#sysvar_lower_case_file_system）` |
    | ---- | -------------------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |

    此变量描述数据目录所在的文件系统上文件名的大小写敏感度。`关`意味着文件名区分大小写，`在…上`意味着它们不区分大小写。此变量是只读的，因为它反映了文件系统属性，设置它对文件系统没有影响。

-   [](<>) [`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)

    [](<>)[](<>)

    | 命令行格式 | `--小写表格名称[=#]` |
    | ----- | -------------- |
    | 系统变量 | `[lower_case_table_names]（server system variables.html#sysvar_lower_case_table_names）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（macOS） | `2.` |
    | 默认值（Unix） | `0` |
    | 默认值（Windows） | `1.` |
    | 最小值 | `0` |
    | 最大值 | `2.` |

    如果设置为0，则表名按指定存储，比较区分大小写。如果设置为1，表名将以小写形式存储在磁盘上，比较不区分大小写。如果设置为2，则表名按给定值存储，但以小写字母进行比较。此选项也适用于数据库名称和表别名。有关更多详细信息，请参阅[第9.2.3节，“标识符区分大小写”](identifier-case-sensitivity.html).

    此变量的默认值取决于平台（请参见[`小写文件系统`](server-system-variables.html#sysvar_lower_case_file_system)).在Linux和其他类似Unix的系统上，默认值为`0`.在Windows上，默认值为`1.`。在macOS上，默认值为`2.`。在Linux（和其他类似Unix的系统）上，将值设置为`2.`不受支持；服务器强制将值`0`相反

    你应该*不*设置[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)如果在数据目录位于不区分大小写的文件系统（如Windows或macOS）上的系统上运行MySQL，则返回0。这是一种不受支持的组合，在运行`插入。。。选择来自*`tbl\_名称`*`错误的操作*`tbl_名称`*信箱。具有`米萨姆`，使用不同的字母箱访问表名可能会导致索引损坏。

    如果您尝试使用启动服务器，则会打印一条错误消息并退出服务器[`--小写字母表名称=0`](server-system-variables.html#sysvar_lower_case_table_names)在不区分大小写的文件系统上。

    此变量的设置会影响复制筛选选项在区分大小写方面的行为。有关更多信息，请参阅[第17.2.5节，“服务器如何评估复制筛选规则”](replication-rules.html).

    禁止用电源启动服务器[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)与服务器初始化时使用的设置不同的设置。这种限制是必要的，因为各种数据字典表字段使用的排序规则是由服务器初始化时定义的设置确定的，使用不同的设置重新启动服务器会导致标识符排序和比较方式不一致。

    因此，有必要配置[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)在初始化服务器之前，将其设置为所需的设置。在大多数情况下，这需要配置[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)在第一次启动MySQL服务器之前，在MySQL选项文件中。然而，对于Debian和Ubuntu上的APT安装，服务器已经为您初始化，并且没有机会预先在选项文件中配置设置。因此，您必须使用`集合选择`安装MySQL之前使用APT启用[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)。为此，请在使用APT安装MySQL之前运行以下命令：

    ```
    $> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled
    ```

    笔记

    使[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)使用`集合选择`是在MySQL 8.0.17中添加的。有可能[`小写字母表名称`](server-system-variables.html#sysvar_lower_case_table_names)将该值设置为1。

-   [](<>) [`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)

    [](<>)[](<>)

    | 命令行格式 | `--强制角色=价值` |
    | ----- | ----------- |
    | 系统变量 | `[mandatory_roles]（server system variables.html#sysvar_mandatory_roles）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `空字符串` |

    服务器应视为必需的角色。实际上，这些角色会自动授予每个用户，尽管[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)不会实际更改任何用户帐户，并且在`mysql。角色!`系统表。

    变量值是以逗号分隔的角色名称列表。例子：

    ```
    SET PERSIST mandatory_roles = '`role1`@`%`,`role2`,role3,role4@localhost';
    ```

    设置的运行时值[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)需要[`角色管理`](privileges-provided.html#priv_role-admin)特权，除了[`系统变量管理`](privileges-provided.html#priv_system-variables-admin)特权（或不推荐的[`超级的`](privileges-provided.html#priv_super)特权）通常需要设置全局系统变量运行时值。

    角色名由中的用户部分和主机部分组成`*`用户名`*@*`主机名`*`总体安排主体部分（如果省略）默认为`%`。有关更多信息，请参阅[第6.2.5节“指定角色名称”](role-names.html).

    这个[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)值是一个字符串，因此用户名和主机名（如果被引用）必须以允许在被引用的字符串中引用的方式写入。

    以值命名的角色[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)无法使用撤销[`撤销`](revoke.html)或是和[`放弃角色`](drop-role.html)或[`删除用户`](drop-user.html).

    为了防止会话在默认情况下成为系统会话，具有[`系统用户`](privileges-provided.html#priv_system-user)特权不能列在[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)系统变量：

    -   如果[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)在启动时被分配了一个具有[`系统用户`](privileges-provided.html#priv_system-user)特权，服务器将消息写入错误日志并退出。

    -   如果[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)在运行时被分配了一个具有[`系统用户`](privileges-provided.html#priv_system-user)特权，则会发生错误，并且[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)价值保持不变。

        强制角色，如明确授予的角色，在激活之前不会生效（请参见[激活角色](roles.html#roles-activating))。在登录时，如果[`在登录时激活所有角色`](server-system-variables.html#sysvar_activate_all_roles_on_login)系统变量已启用；否则，或针对设置为默认角色的角色。在运行时，[`设定角色`](set-role.html)激活角色。

        分配给时不存在的角色[`强制性的_角色`](server-system-variables.html#sysvar_mandatory_roles)但是，如果是在以后创建的，则可能需要特殊处理才能被视为强制性的。有关详细信息，请参阅[定义强制性角色](roles.html#mandatory-roles).

    [`表演补助金`](show-grants.html)根据中描述的规则显示必需的角色[第13.7.7.21节，“显示拨款声明”](show-grants.html).

-   [](<>) [`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)

    [](<>)[](<>)

    | 命令行格式 | `--最大允许包数=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_allowed_packet]（server system variables.html#sysvar_max_allowed_packet）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `67108864` |
    | 最小值 | `1024` |
    | 最大值 | `1073741824` |
    | 块大小 | `1024` |

    一个数据包或任何生成/中间字符串的最大大小，或由[`mysql_stmt_发送_long_数据（）`](https://dev.mysql.com/doc/c-api/8.0/en/mysql-stmt-send-long-data.html)C API函数。默认值为64MB。

    数据包消息缓冲区初始化为[`净缓冲区长度`](server-system-variables.html#sysvar_net_buffer_length)字节，但可以增长到[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)需要时，输入字节。默认情况下，该值很小，用于捕获较大（可能不正确）的数据包。

    如果使用的是大的，则必须增加此值[`斑点`](blob.html)列或长字符串。它应该和最大的一样大[`斑点`](blob.html)你想用。协议限制[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)是1GB。该值应为1024的倍数；非倍数向下舍入为最接近的倍数。

    当您通过更改[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)变量，如果客户端程序允许，还应该更改客户端的缓冲区大小。默认值[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)客户端库的内置值为1GB，但个别客户端程序可能会覆盖该值。例如[**mysql**](mysql.html)和[**mysqldump**](mysqldump.html)默认值分别为16MB和24MB。它们还允许您通过设置[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)在命令行或选项文件中。

    此变量的会话值为只读。客户端最多可以接收会话值的字节数。但是，服务器向客户端发送的字节数不会超过当前的全局字节数[`最大允许包数`](server-system-variables.html#sysvar_max_allowed_packet)价值（如果在客户端连接后更改全局值，则全局值可能小于会话值。）

-   [](<>) [`最大连接错误`](server-system-variables.html#sysvar_max_connect_errors)

    [](<>)[](<>)

    | 命令行格式 | `--最大连接错误数=#` |
    | ----- | ------------- |
    | 系统变量 | `[max_connect_errors]（server system variables.html#sysvar_max_connect_errors）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `100` |
    | 最小值 | `1.` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    之后[`最大连接错误`](server-system-variables.html#sysvar_max_connect_errors)来自主机的连续连接请求在没有成功连接的情况下被中断，服务器会阻止该主机进一步连接。如果从主机成功建立连接的时间少于[`最大连接错误`](server-system-variables.html#sysvar_max_connect_errors)尝试前一次连接中断后，主机的错误计数将清除为零。要解除阻止主机，请刷新主机缓存；看见[刷新主机缓存](host-cache.html#host-cache-flushing).

-   [](<>) [`max_连接`](server-system-variables.html#sysvar_max_connections)

    [](<>)[](<>)

    | 命令行格式 | `--最大连接数=#` |
    | ----- | ----------- |
    | 系统变量 | `[max_connections]（server system variables.html#sysvar_max_connections）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `151` |
    | 最小值 | `1.` |
    | 最大值 | `100000` |

    允许的最大同时客户端连接数。最大有效值为[`打开\u文件\u限制`](server-system-variables.html#sysvar_open_files_limit)`- 810`，以及实际设置的`max_连接`.

    有关更多信息，请参阅[第5.1.12.1节“连接接口”](connection-interfaces.html).

-   [](<>) [`最大延迟线程数`](server-system-variables.html#sysvar_max_delayed_threads)

    [](<>)[](<>)

    | 命令行格式 | `--最大延迟线程数=#` |
    | ----- | ------------- |
    | 反对 | 对 |
    | 系统变量 | `[max_delayed_threads]（server system variables.html#sysvar_max_delayed_threads）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `20` |
    | 最小值 | `0` |
    | 最大值 | `16384` |

    此系统变量已弃用（因为`延迟`不支持插入），并可能在将来的MySQL版本中删除。

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`最大长度`](server-system-variables.html#sysvar_max_digest_length)

    [](<>)[](<>)

    | 命令行格式 | `--最大摘要长度=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_digest_length]（server system variables.html#sysvar_max_digest_length）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `0` |
    | 最大值 | `1048576` |

    每个会话为计算规范化语句摘要而保留的最大内存字节数。一旦在摘要计算过程中使用了这么多的空间，就会发生截断：不再收集解析语句中的进一步标记，也不会将其计算为摘要值。只有在经过多字节解析的标记之后才不同的语句才会产生相同的规范化语句摘要，如果比较或聚合摘要统计信息，则认为这些语句是相同的。

    警告

    背景[`最大长度`](server-system-variables.html#sysvar_max_digest_length)归零将禁用摘要生成，这也会禁用需要摘要的服务器功能，例如MySQL企业防火墙。

    减少[`最大长度`](server-system-variables.html#sysvar_max_digest_length)value减少了内存使用，但如果更多语句的摘要值仅在末尾不同，则它们会变得难以区分。增加该值可以区分更长的语句，但会增加内存使用，尤其是对于涉及大量同时会话（服务器分配）的工作负载[`最大长度`](server-system-variables.html#sysvar_max_digest_length)每个会话的字节数）。

    解析器使用此系统变量作为其计算的规范化语句摘要的最大长度限制。如果性能模式跟踪语句摘要，则使用[`性能模式最大摘要长度`](performance-schema-system-variables.html#sysvar_performance_schema_max_digest_length).系统变量，作为对其存储的摘要最大长度的限制。因此，如果[`性能模式最大摘要长度`](performance-schema-system-variables.html#sysvar_performance_schema_max_digest_length)不到[`最大长度`](server-system-variables.html#sysvar_max_digest_length)，则存储在性能架构中的摘要值将相对于原始摘要值被截断。

    有关语句摘要的更多信息，请参见[第27.10节，“绩效模式声明摘要和抽样”](performance-schema-statement-digests.html).

-   [](<>) [`最大错误计数`](server-system-variables.html#sysvar_max_error_count)

    [](<>)[](<>)

    | 命令行格式 | `--最大错误计数=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_error_count]（server system variables.html#sysvar_max_error_count）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `0` |
    | 最大值 | `65535` |

    要存储以供用户显示的最大错误、警告和信息消息数[`显示错误`](show-errors.html)和[`显示警告`](show-warnings.html)声明。这与diagnostics（诊断）区域中的条件区域的数量相同，因此也与diagnostics（诊断）区域可以检查的条件的数量相同[`获取诊断信息`](get-diagnostics.html).

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`最长执行时间`](server-system-variables.html#sysvar_max_execution_time)

    [](<>)[](<>)

    | 命令行格式 | `--最大执行时间=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_execution_time]（server system variables.html#sysvar_max_execution_time）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `0` |

    的执行超时[`选择`](select.html)语句，以毫秒为单位。如果该值为0，则不启用超时。

    [`最长执行时间`](server-system-variables.html#sysvar_max_execution_time)适用范围如下：

    -   全球[`最长执行时间`](server-system-variables.html#sysvar_max_execution_time)值为新连接的会话值提供默认值。会话值应用于`选择`在会话中执行的执行不包括[`最长执行时间(*`N`*)`](optimizer-hints.html#optimizer-hints-execution-time)优化器提示或*`N`*是0。

    -   [`最长执行时间`](server-system-variables.html#sysvar_max_execution_time)适用于只读[`选择`](select.html)声明。非只读语句是那些调用存储函数的语句，该存储函数作为副作用修改数据。

    -   [`最长执行时间`](server-system-variables.html#sysvar_max_execution_time)因为[`选择`](select.html)存储程序中的语句。

-   [](<>) [`最大堆大小表大小`](server-system-variables.html#sysvar_max_heap_table_size)

    [](<>)[](<>)

    | 命令行格式 | `--最大堆表大小=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_heap_table_size]（server system variables.html#sysvar_max_heap_table_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `16777216` |
    | 最小值 | `16384` |
    | 最大值（64位平台） | `18446744073709550592` |
    | 最大值（32位平台） | `4294966272` |
    | 块大小 | `1024` |

    此变量设置用户创建的文件的最大大小`记忆力`桌子被允许增长。变量的值用于计算`记忆力`桌子`最大排数`价值观

    块大小为1024。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

    设置此变量对任何现有变量都没有影响`记忆力`表，除非使用以下语句重新创建该表：[`创建表格`](create-table.html)或者用[`改变桌子`](alter-table.html)或[`截断表`](truncate-table.html).重新启动服务器也会设置现有服务器的最大大小`记忆力`全球数据表[`最大堆大小表大小`](server-system-variables.html#sysvar_max_heap_table_size)价值

    此变量还与[`tmp_表_尺寸`](server-system-variables.html#sysvar_tmp_table_size)限制内存中内部表的大小。看见[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

    `最大堆大小表大小`不可复制。看见[第17.5.1.21节，“复制和内存表”](replication-features-memory.html)和[第17.5.1.39节，“复制和变量”](replication-features-variables.html)，以获取更多信息。

-   [](<>) [`最大插入延迟线程数`](server-system-variables.html#sysvar_max_insert_delayed_threads)

    [](<>)[](<>)

    | 反对 | 对 |
    | --- | --- |
    | 系统变量 | `[max_insert_delayed_threads]（server system variables.html#sysvar_max_insert_delayed_threads）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |

    这个变量是[`最大延迟线程数`](server-system-variables.html#sysvar_max_delayed_threads)喜欢[`最大延迟线程数`](server-system-variables.html#sysvar_max_delayed_threads)，它被弃用（因为`延迟`不支持插入），并可能在将来的MySQL版本中删除。

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`最大尺寸`](server-system-variables.html#sysvar_max_join_size)

    [](<>)[](<>)

    | 命令行格式 | `--最大连接大小=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_join_size]（server system variables.html#sysvar_max_join_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `18446744073709551615` |
    | 最小值 | `1.` |
    | 最大值 | `18446744073709551615` |

    不允许可能需要检查超过[`最大尺寸`](server-system-variables.html#sysvar_max_join_size)行（对于单个表语句）或行组合（对于多个表语句）或可能执行以下操作的行[`最大尺寸`](server-system-variables.html#sysvar_max_join_size)磁盘搜索。通过设置该值，可以捕捉到键使用不当的语句，这可能需要很长时间。如果您的用户倾向于执行缺少`哪里`子句，需要很长时间，或者返回数百万行。有关更多信息，请参阅[使用安全更新模式（--安全更新）](mysql-tips.html#safe-updates).

    将此变量设置为除`违约`重置的值[`sql_big_选择`](server-system-variables.html#sysvar_sql_big_selects)到`0`.如果你设定[`sql_big_选择`](server-system-variables.html#sysvar_sql_big_selects)再次强调价值[`最大尺寸`](server-system-variables.html#sysvar_max_join_size)变量被忽略。

-   [](<>) [`排序数据的最大长度`](server-system-variables.html#sysvar_max_length_for_sort_data)

    [](<>)[](<>)

    | 命令行格式 | `--排序数据的最大长度=#` |
    | ----- | --------------- |
    | 反对 | 8.0.20 |
    | 系统变量 | `[max_length_代表_sort_数据]（server system variables.html#sysvar_max_length_代表_sort_数据）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `4096` |
    | 最小值 | `4` |
    | 最大值 | `8388608` |

    从 MySQL 8.0.20 开始不推荐使用此变量，因为优化器更改使其过时且无效。以前，它作为索引值大小的截止值，决定了哪个`文件排序`要使用的算法。看[第 8.2.1.16 节，“按优化排序”](order-by-optimization.html).

-   [](<>) [`max_points_in_geometry`](server-system-variables.html#sysvar_max_points_in_geometry)

    [](<>)[](<>)

    | 命令行格式 | `--max-points-in-geometry=#` |
    | ----- | ---------------------------- |
    | 系统变量 | `[max_points_in_geometry]（服务器系统变量.html#sysvar_max_points_in_geometry）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `65536` |
    | 最小值 | `3` |
    | 最大值 | `1048576` |

    的最大值*`points_per_circle`*论据[`ST_Buffer_Strategy()`](spatial-operator-functions.html#function_st-buffer-strategy)功能。

-   [](<>) [`max_prepared_stmt_count`](server-system-variables.html#sysvar_max_prepared_stmt_count)

    [](<>)[](<>)

    | 命令行格式 | `--max-prepared-stmt-count=#` |
    | ----- | ----------------------------- |
    | 系统变量 | `[max_prepared_stmt_count]（服务器系统变量.html#sysvar_max_prepared_stmt_count）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `16382` |
    | 最小值 | `0` |
    | 最大值（≥ 8.0.18） | `4194304` |
    | 最大值 (≤ 8.0.17) | `1048576` |

    此变量限制服务器中准备好的语句的总数。它可用于可能通过准备大量语句使服务器内存不足而导致拒绝服务攻击的环境。如果该值设置为低于当前准备语句的数量，则现有语句不受影响并且可以使用，但在当前数量低于限制之前不能准备新的语句。将该值设置为 0 将禁用准备好的语句。

-   [](<>) [`max_seeks_for_key`](server-system-variables.html#sysvar_max_seeks_for_key)

    [](<>)[](<>)

    | 命令行格式 | `--max-seeks-for-key=#` |
    | ----- | ----------------------- |
    | 系统变量 | `[max_seeks_for_key]（服务器系统变量.html#sysvar_max_seeks_for_key）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 (Windows) | `4294967295` |
    | 默认值（其他，64 位平台） | `18446744073709551615` |
    | 默认值（其他，32 位平台） | `4294967295` |
    | 最小值 | `1` |
    | 最大值 (Windows) | `4294967295` |
    | 最大值（其他，64 位平台） | `18446744073709551615` |
    | 最大值（其他，32 位平台） | `4294967295` |

    在基于键查找行时限制假定的最大搜索次数。MySQL 优化器假定通过扫描索引在表中搜索匹配行时，无论索引的实际基数如何（参见[第 13.7.7.22 节，“显示索引语句”](show-index.html)）。通过将其设置为较低的值（例如，100），您可以强制 MySQL 更喜欢索引而不是表扫描。

-   [](<>) [`最大排序长度`](server-system-variables.html#sysvar_max_sort_length)

    [](<>)[](<>)

    | 命令行格式 | `--最大排序长度=#` |
    | ----- | ------------ |
    | 系统变量 | `[max_sort_length]（服务器系统变量.html#sysvar_max_sort_length）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `4` |
    | 最大值 | `8388608` |

    对使用的字符串值进行排序时使用的字节数`焊盘空间`排序规则。服务器只使用第一个[`最大排序长度`](server-system-variables.html#sysvar_max_sort_length)任何此类值的字节，并忽略其余部分。因此，这些值仅在第一次之后不同[`最大排序长度`](server-system-variables.html#sysvar_max_sort_length)字节比较相等`通过...分组`,`订购方式`， 和`清楚的`操作。（此行为与以前版本的 MySQL 不同，后者将此设置应用于比较中使用的所有值。）

    增加价值[`最大排序长度`](server-system-variables.html#sysvar_max_sort_length)可能需要增加[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)也是。有关详细信息，请参阅[第 8.2.1.16 节，“按优化排序”](order-by-optimization.html)

-   [](<>) [`max_sp_recursion_depth`](server-system-variables.html#sysvar_max_sp_recursion_depth)

    [](<>)[](<>)

    | 命令行格式 | `--max-sp-recursion-depth[=#]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[max_sp_recursion_depth]（服务器系统变量.html#sysvar_max_sp_recursion_depth）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最大值 | `255` |

    递归调用任何给定存储过程的次数。此选项的默认值为 0，它完全禁用存储过程中的递归。最大值为 255。

    存储过程递归增加了对线程堆栈空间的需求。如果你增加[`max_sp_recursion_depth`](server-system-variables.html#sysvar_max_sp_recursion_depth)，可能需要通过增加值来增加线程堆栈大小[`线程堆栈`](server-system-variables.html#sysvar_thread_stack)在服务器启动时。

-   [](<>) [`max_user_connections`](server-system-variables.html#sysvar_max_user_connections)

    [](<>)[](<>)[](<>)[](<>)

    | 命令行格式 | `--max-user-connections=#` |
    | ----- | -------------------------- |
    | 系统变量 | `[max_user_connections]（服务器系统变量.html#sysvar_max_user_connections）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    任何给定 MySQL 用户帐户允许的最大同时连接数。值 0（默认值）表示“无限制”。

    这个变量有一个全局值，可以在服务器启动或运行时设置。它还有一个只读会话值，指示适用于与当前会话关联的帐户的有效同时连接限制。会话值初始化如下：

    -   如果用户帐户有一个非零`MAX_USER_CONNECTIONS`资源限制，会话[`max_user_connections`](server-system-variables.html#sysvar_max_user_connections)值设置为该限制。

    -   否则，会话[`max_user_connections`](server-system-variables.html#sysvar_max_user_connections)value 设置为全局值。

        帐户资源限制使用[`创建用户`](create-user.html)要么[`更改用户`](alter-user.html)陈述。看[第 6.2.21 节，“设置帐户资源限制”](user-resources.html).

-   [](<>) [`max_write_lock_count`](server-system-variables.html#sysvar_max_write_lock_count)

    [](<>)[](<>)

    | 命令行格式 | `--max-write-lock-count=#` |
    | ----- | -------------------------- |
    | 系统变量 | `[max_write_lock_count]（服务器系统变量.html#sysvar_max_write_lock_count）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 (Windows) | `4294967295` |
    | 默认值（其他，64 位平台） | `18446744073709551615` |
    | 默认值（其他，32 位平台） | `4294967295` |
    | 最小值 | `1` |
    | 最大值 (Windows) | `4294967295` |
    | 最大值（其他，64 位平台） | `18446744073709551615` |
    | 最大值（其他，32 位平台） | `4294967295` |

    在这么多写锁之后，允许在其间处理一些挂起的读锁请求。写锁请求的优先级高于读锁请求。然而，如果[`max_write_lock_count`](server-system-variables.html#sysvar_max_write_lock_count)设置为某个较低的值（例如 10），如果读锁定请求已经被传递，有利于 10 个写锁定请求，则读锁定请求可能优于挂起的写锁定请求。通常不会发生这种行为，因为[`max_write_lock_count`](server-system-variables.html#sysvar_max_write_lock_count)默认情况下具有非常大的值。

-   [](<>) [`mecab_rc_file`](server-system-variables.html#sysvar_mecab_rc_file)

    [](<>)[](<>)

    | 命令行格式 | `--mecab-rc-file=文件名` |
    | ----- | --------------------- |
    | 系统变量 | `[mecab_rc_file]（服务器系统变量.html#sysvar_mecab_rc_file）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |

    这`mecab_rc_file`设置 MeCab 全文解析器时使用选项。

    这`mecab_rc_file`选项定义了路径`麦卡布`配置文件，即 MeCab 的配置文件。该选项是只读的，只能在启动时设置。这`麦卡布`初始化 MeCab 需要配置文件。

    有关 MeCab 全文解析器的信息，请参阅[第 12.10.9 节，“MeCab 全文解析器插件”](fulltext-search-mecab.html).

    有关可以在 MeCab 中指定的选项的信息`麦卡布`配置文件，参考[MeCab 文档](http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html)在[谷歌开发者](https://code.google.com/)地点。

-   [](<>) [`metadata_locks_cache_size`](server-system-variables.html#sysvar_metadata_locks_cache_size)

    [](<>)[](<>)

    | 命令行格式 | `--元数据锁缓存大小=#` |
    | ----- | -------------- |
    | 已弃用 | 是（在 8.0.13 中删除） |
    | 系统变量 | `[metadata_locks_cache_size]（服务器系统变量.html#sysvar_metadata_locks_cache_size）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `1` |
    | 最大值 | `1048576` |

    此系统变量在 MySQL 8.0.13 中已删除。

-   [](<>) [`metadata_locks_hash_instances`](server-system-variables.html#sysvar_metadata_locks_hash_instances)

    [](<>)[](<>)

    | 命令行格式 | `--metadata-locks-hash-instances=#` |
    | ----- | ----------------------------------- |
    | 已弃用 | 是（在 8.0.13 中删除） |
    | 系统变量 | `[metadata_locks_hash_instances]（服务器系统变量.html#sysvar_metadata_locks_hash_instances）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8` |
    | 最小值 | `1` |
    | 最大值 | `1024` |

    此系统变量在 MySQL 8.0.13 中已删除。

-   [](<>) [`min_examined_row_limit`](server-system-variables.html#sysvar_min_examined_row_limit)

    [](<>)[](<>)

    | 命令行格式 | `--min-examined-row-limit=#` |
    | ----- | ---------------------------- |
    | 系统变量 | `[min_examined_row_limit]（服务器系统变量.html#sysvar_min_examined_row_limit）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    检查少于此行数的查询不会记录到慢查询日志中。

    从 MySQL 8.0.27 开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`myisam_data_pointer_size`](server-system-variables.html#sysvar_myisam_data_pointer_size)

    [](<>)[](<>)

    | 命令行格式 | `--myisam 数据指针大小=#` |
    | ----- | ------------------- |
    | 系统变量 | `[myisam_data_pointer_size]（服务器系统变量.html#sysvar_myisam_data_pointer_size）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `6` |
    | 最小值 | `2` |
    | 最大值 | `7` |

    以字节为单位的默认指针大小，由[`创建表`](create-table.html)为了`MyISAM`没有时的表`MAX_ROWS`选项已指定。此变量不能小于2或大于7。默认值为6。看见[第B.3.2.10节，“表格已满”](full-table.html).

-   [](<>) [`myisam_max_sort_file_size`](server-system-variables.html#sysvar_myisam_max_sort_file_size)

    [](<>)[](<>)

    | 命令行格式 | `--myisam最大排序文件大小=#` |
    | ----- | -------------------- |
    | 系统变量 | `[myisam_max_sort_file_size]（server system variables.html#sysvar_myisam_max_sort_file_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（Windows） | `2146435072` |
    | 默认值（其他64位平台） | `9223372036853727232` |
    | 默认值（其他32位平台） | `2147483648` |
    | 最大值（Windows） | `2146435072` |
    | 最大值（其他64位平台） | `9223372036853727232` |
    | 最大值（其他32位平台） | `2147483648` |

    MySQL在重新创建数据库时允许使用的临时文件的最大大小`米萨姆`索引（在[`修理台`](repair-table.html), [`改变桌子`](alter-table.html)或[`加载数据`](load-data.html))。如果文件大小大于此值，则使用密钥缓存创建索引，这会更慢。该值以字节为单位。

    如果`米萨姆`索引文件超过此大小且磁盘空间可用，增加该值可能有助于提高性能。该空间必须在包含原始索引文件所在目录的文件系统中可用。

-   [](<>) [`myisam_mmap_尺寸`](server-system-variables.html#sysvar_myisam_mmap_size)

    [](<>)[](<>)

    | 命令行格式 | `--myisam mmap尺寸=#` |
    | ----- | ------------------- |
    | 系统变量 | `[myisam_mmap_size]（server system variables.html#sysvar_myisam_mmap_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（64位平台） | `18446744073709551615` |
    | 默认值（32位平台） | `4294967295` |
    | 最小值 | `7.` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    用于压缩内存映射的最大内存量[`米萨姆`](myisam-storage-engine.html)文件夹。如果很多人`米萨姆`如果使用表，则可以减小该值以降低内存交换问题的可能性。

-   [](<>) [`myisam_恢复选项`](server-system-variables.html#sysvar_myisam_recover_options)

    [](<>)[](<>)

    | 命令行格式 | `--myisam恢复选项[=列表]` |
    | ----- | ------------------- |
    | 系统变量 | `[myisam_recover_options]（server system variables.html#sysvar_myisam_recover_options）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `关` |
    | 有效值 | `关`<br/><br/>`违约`<br/><br/>`备份`<br/><br/>`武力`<br/><br/>`快的` |

    设定`米萨姆`存储引擎恢复模式。变量值是`关`, `违约`, `备份`, `武力`或`快的`.如果指定多个值，请用逗号分隔。在服务器启动时指定没有值的变量与指定`违约`，并使用显式值`""`禁用恢复（与值相同）`关`)。如果已启用恢复，则每次[**mysqld**](mysqld.html)打开一个`米萨姆`表，它检查表是否标记为崩溃或未正确关闭。（只有在禁用外部锁定的情况下运行时，最后一个选项才有效。）如果是这样的话，[**mysqld**](mysqld.html)对桌子进行检查。如果桌子坏了，[**mysqld**](mysqld.html)试图修复它。

    以下选项会影响修复的工作方式。

    | 选项 | 描述 |
    | --- | --- |
    | `关` | 没有恢复。 |
    | `违约` | 无需备份、强制或快速检查即可恢复。 |
    | `备份` | 如果数据文件在恢复过程中发生了更改，请保存数据文件的备份`*`tbl\_名称`*MYD先生`归档为`*`tbl_name-datetime`*贝克先生`. |
    | `武力` | 运行恢复，即使我们将从`MYD先生`文件 |
    | `快的` | 如果没有任何删除块，请不要检查表中的行。 |

    在服务器自动修复表之前，它会将有关修复的注释写入错误日志。如果你想在没有用户干预的情况下从大多数问题中恢复过来，你应该使用以下选项`后援部队`。这会强制修复表，即使某些行会被删除，但它会保留旧数据文件作为备份，以便以后可以检查发生了什么。

    看见[第16.2.1节，“MyISAM启动选项”](myisam-start.html).

-   [](<>) [`myisam_修复_螺纹`](server-system-variables.html#sysvar_myisam_repair_threads)

    [](<>)[](<>)

    | 命令行格式 | `--myisam修复螺纹=#` |
    | ----- | ---------------- |
    | 反对 | 8.0.29（在8.0.30中删除） |
    | 系统变量 | `[myisam_repair_threads]（server system variables.html#sysvar_myisam_repair_threads）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1.` |
    | 最小值 | `1.` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    笔记

    这个系统变量在MySQL 8.0.29中被弃用，在MySQL 8.0.30中被删除。

    在MySQL 8.0.29中，1以外的值会产生警告。

    如果该值大于1，`米萨姆`表索引是在`分类修理`过程默认值为1。

    笔记

    多线程修复非常重要*贝塔质量*密码

-   [](<>) [`myisam_排序_缓冲区_大小`](server-system-variables.html#sysvar_myisam_sort_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--myisam排序缓冲区大小=#` |
    | ----- | ------------------- |
    | 系统变量 | `[myisam_sort_buffer_size]（server system variables.html#sysvar_myisam_sort_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8388608` |
    | 最小值 | `4096` |
    | 最大值（64位平台） | `18446744073709551615` |
    | 最大值（32位平台） | `4294967295` |

    排序时分配的缓冲区大小`米萨姆`索引[`修理台`](repair-table.html)或者在创建索引时使用[`创建索引`](create-index.html)或[`改变桌子`](alter-table.html).

-   [](<>) [`myisam_统计法`](server-system-variables.html#sysvar_myisam_stats_method)

    [](<>)[](<>)

    | 命令行格式 | `--myisam stats method=name` |
    | ----- | ---------------------------- |
    | 系统变量 | `[myisam_stats_method]（server system variables.html#sysvar_myisam_stats_method）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `空值不相等` |
    | 有效值 | `空值不相等`<br/><br/>`空值等于`<br/><br/>`空值被忽略` |

    服务器如何处理`无效的`收集有关索引值分布的统计信息时的值`米萨姆`桌子。这个变量有三个可能的值，`空值等于`, `空值不相等`和`空值被忽略`对于`空值等于`全部的`无效的`索引值被认为是相等的，并形成一个大小等于`无效的`价值观对于`空值不相等`, `无效的`值被认为是不相等的，并且每个值`无效的`形成大小为1的独特值组。对于`空值被忽略`, `无效的`值被忽略。

    用于生成表统计信息的方法会影响优化器为查询执行选择索引的方式，如中所述[第8.3.8节，“InnoDB和MyISAM索引统计数据收集”](index-statistics.html).

-   [](<>) [`myisam_use_mmap`](server-system-variables.html#sysvar_myisam_use_mmap)

    [](<>)[](<>)

    | 命令行格式 | `--myisam使用mmap[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[myisam_use_mmap]（server system variables.html#sysvar_myisam_use_mmap）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    使用内存映射进行读写`米萨姆`桌子。

-   [](<>) [`mysql\本地\密码\代理\用户`](server-system-variables.html#sysvar_mysql_native_password_proxy_users)

    [](<>)[](<>)

    | 命令行格式 | `--mysql本机密码代理用户[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[mysql_native_password_proxy_users]（server system variables.html#sysvar_mysql_native_password_proxy_users）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量控制`mysql_本机_密码`内置的身份验证插件支持代理用户。除非[`检查代理用户`](server-system-variables.html#sysvar_check_proxy_users)系统变量已启用。有关用户代理的信息，请参阅[第6.2.19节“代理用户”](proxy-users.html).

-   [](<>) [`命名为_管道`](server-system-variables.html#sysvar_named_pipe)

    [](<>)[](<>)

    | 命令行格式 | `--命名管道[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[named_pipe]（server system variables.html#sysvar_named_pipe）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 特定平台 | 窗户 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    （仅限Windows。）指示服务器是否支持通过命名管道进行连接。

-   [](<>) [`命名为_管道_完全访问_组`](server-system-variables.html#sysvar_named_pipe_full_access_group)

    [](<>)[](<>)

    | 命令行格式 | `--命名管道完全访问组=值` |
    | ----- | --------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[named_pipe_full_access_group]（server system variables.html#sysvar_named_pipe_full_access_group）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 特定平台 | 窗户 |
    | 类型 | 一串 |
    | 默认值 | `空字符串` |
    | 有效值 | `空字符串`<br/><br/>`有效的Windows本地组名`<br/><br/>`*所有人*` |

    （仅限Windows。）在MySQL服务器创建的命名管道上，授予客户机的访问控制被设置为在以下情况下成功通信所需的最小值：[`命名为_管道`](server-system-variables.html#sysvar_named_pipe)已启用系统变量以支持命名管道连接。一些MySQL客户端软件可以在不进行任何额外配置的情况下打开命名管道连接；但是，其他客户端软件可能仍然需要完全访问才能打开命名管道连接。

    此变量设置Windows本地组的名称，MySQL服务器向其成员授予足够的访问权限，以使用命名管道客户端。从MySQL 8.0.24开始，默认值设置为空字符串，这意味着没有Windows用户被授予对命名管道的完全访问权限。

    新的Windows本地组名（例如，`mysql\u访问\u客户端\u用户`)可以在Windows中创建，然后在绝对需要访问时用于替换默认值。在这种情况下，将组成员限制为尽可能少的用户，在升级用户的客户端软件时将其从组中删除。试图使用受影响的命名管道客户端打开与MySQL的连接的非组成员将被拒绝访问，直到Windows管理员将该用户添加到组中。新添加的用户必须注销并再次登录才能加入该组（Windows要求）。

    将值设置为`“*所有人*”`提供一种独立于语言的方式来引用Windows上的Everyone组。默认情况下，Everyone组不安全。

-   [](<>) [`net_buffer_length`](server-system-variables.html#sysvar_net_buffer_length)

    [](<>)[](<>)

    | 命令行格式 | `--net-buffer-length=#` |
    | ----- | ----------------------- |
    | 系统变量 | `[net_buffer_length]（服务器系统变量.html#sysvar_net_buffer_length）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `16384` |
    | 最小值 | `1024` |
    | 最大值 | `1048576` |
    | 块大小 | `1024` |

    每个客户端线程都与一个连接缓冲区和结果缓冲区相关联。两者都以给定的大小开头[`net_buffer_length`](server-system-variables.html#sysvar_net_buffer_length)但动态放大到[`max_allowed_pa​​cket`](server-system-variables.html#sysvar_max_allowed_packet)字节根据需要。结果缓冲区缩小到[`net_buffer_length`](server-system-variables.html#sysvar_net_buffer_length)在每个 SQL 语句之后。

    此变量通常不应更改，但如果您的内存很少，您可以将其设置为客户端发送的语句的预期长度。如果语句超过此长度，则连接缓冲区会自动扩大。达到的最大值[`net_buffer_length`](server-system-variables.html#sysvar_net_buffer_length)可设置为1MB。

    此变量的会话值是只读的。

-   [](<>) [`net_read_timeout`](server-system-variables.html#sysvar_net_read_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--net-read-timeout=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[net_read_timeout]（服务器系统变量.html#sysvar_net_read_timeout）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `30` |
    | 最小值 | `1` |

    在中止读取之前等待来自连接的更多数据的秒数。当服务器从客户端读取时，[`net_read_timeout`](server-system-variables.html#sysvar_net_read_timeout)是控制何时中止的超时值。当服务器写入客户端时，[`net_write_timeout`](server-system-variables.html#sysvar_net_write_timeout)是控制何时中止的超时值。也可以看看[`副本网络超时`](replication-options-replica.html#sysvar_replica_net_timeout)和[`slave_net_timeout`](replication-options-replica.html#sysvar_slave_net_timeout).

-   [](<>) [`net_retry_count`](server-system-variables.html#sysvar_net_retry_count)

    [](<>)[](<>)

    | 命令行格式 | `--net-retry-count=#` |
    | ----- | --------------------- |
    | 系统变量 | `[net_retry_count]（服务器系统变量.html#sysvar_net_retry_count）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `10` |
    | 最小值 | `1` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    如果通信端口上的读取或写入中断，请在放弃之前重试多次。这个值在 FreeBSD 上应该设置得相当高，因为内部中断被发送到所有线程。

-   [](<>) [`net_write_timeout`](server-system-variables.html#sysvar_net_write_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--net-write-timeout=#` |
    | ----- | ----------------------- |
    | 系统变量 | `[net_write_timeout]（服务器系统变量.html#sysvar_net_write_timeout）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `60` |
    | 最小值 | `1` |

    在中止写入之前等待将块写入连接的秒数。也可以看看[`net_read_timeout`](server-system-variables.html#sysvar_net_read_timeout).

-   [](<>) [`新的`](server-system-variables.html#sysvar_new)

    [](<>)[](<>)

    | 命令行格式 | `--new[={关闭|开启}]` |
    | ----- | ----------------- |
    | 系统变量 | `[新]（服务器系统变量.html#sysvar_new）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 禁用者 | `跳过新的` |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    此变量在 MySQL 4.0 中用于打开某些 4.1 行为，并保留为向后兼容。它的价值永远是`离开`.

    在 NDB Cluster 中，将此变量设置为`在`可以使用除`钥匙`要么`线性键`和[`新开发银行`](mysql-cluster.html)表。*此功能只是实验性的，在生产中不支持*.有关其他信息，请参阅[用户定义的分区和 NDB 存储引擎（NDB Cluster）](partitioning-limitations-storage-engines.html#partitioning-limitations-ndb).

-   [](<>) [`ngram_token_size`](server-system-variables.html#sysvar_ngram_token_size)

    [](<>)[](<>)

    | 命令行格式 | `--ngram-token-size=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[ngram_token_size]（服务器系统变量.html#sysvar_ngram_token_size）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2` |
    | 最小值 | `1` |
    | 最大值 | `10` |

    定义 n-gram 全文解析器的 n-gram 标记大小。这`ngram_token_size`选项是只读的，只能在启动时修改。默认值为 2（二元组）。最大值为 10。

    有关如何配置此变量的更多信息，请参阅[第 12.10.8 节，“ngram 全文解析器”](fulltext-search-ngram.html).

-   [](<>) [`离线模式`](server-system-variables.html#sysvar_offline_mode)

    [](<>)[](<>)

    | 命令行格式 | `--离线模式[={OFF|ON}]` |
    | ----- | ------------------- |
    | 系统变量 | `[offline_mode](server-system-variables.html#sysvar_offline_mode)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    服务器是否处于“离线模式”，具有以下特点：

    -   连接的客户端用户没有[`CONNECTION_ADMIN`](privileges-provided.html#priv_connection-admin)特权（或已弃用的[`极好的`](privileges-provided.html#priv_super)privilege) 在下一个请求时断开连接，并出现适当的错误。断开连接包括终止正在运行的语句和释放锁。此类客户端也无法启动新连接，并收到适当的错误。

    -   已连接的客户端用户[`CONNECTION_ADMIN`](privileges-provided.html#priv_connection-admin)要么[`极好的`](privileges-provided.html#priv_super)权限不会断开，并且可以发起新的连接来管理服务器。

    -   允许复制线程继续将数据应用到服务器。

        只有拥有[`SYSTEM_VARIABLES_ADMIN`](privileges-provided.html#priv_system-variables-admin)要么[`极好的`](privileges-provided.html#priv_super)权限可以控制离线模式。要将服务器置于脱机模式，请更改[`离线模式`](server-system-variables.html#sysvar_offline_mode)系统变量来自`离开`到`在`.要恢复正常操作，请更改[`离线模式`](server-system-variables.html#sysvar_offline_mode)从`在`到`离开`.在离线模式下，被拒绝访问的客户端会收到一个[`ER_SERVER_OFFLINE_MODE`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_server_offline_mode)错误。

-   [](<>) [`老的`](server-system-variables.html#sysvar_old)

    [](<>)[](<>)

    | 命令行格式 | `--old[={OFF|ON}]` |
    | ----- | ------------------ |
    | 系统变量 | `[旧]（服务器系统变量.html#sysvar_old）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    [`老的`](server-system-variables.html#sysvar_old)是一个兼容性变量。默认情况下它是禁用的，但可以在启动时启用以将服务器恢复为旧版本中存在的行为。

    什么时候[`老的`](server-system-variables.html#sysvar_old)启用后，它将索引提示的默认范围更改为 MySQL 5.1.17 之前使用的范围。也就是说，索引提示没有`为了`子句仅适用于如何将索引用于行检索，而不适用于解析`订购方式`要么`通过...分组`条款。（看[第 8.9.4 节，“索引提示”](index-hints.html).) 注意在复制设置中启用此功能。使用基于语句的二进制日志记录，源和副本具有不同的模式可能会导致复制错误。

-   [](<>) [`old_alter_table`](server-system-variables.html#sysvar_old_alter_table)

    [](<>)[](<>)

    | 命令行格式 | `--old-alter-table[={OFF|ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[old_alter_table]（服务器系统变量.html#sysvar_old_alter_table）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    启用此变量时，服务器不会使用优化的方法来处理[`更改表`](alter-table.html)手术。它恢复为使用临时表，复制数据，然后将临时表重命名为原始表，如 MySQL 5.0 和更早版本所使用的那样。有关操作的更多信息[`更改表`](alter-table.html)， 看[第 13.1.9 节，“ALTER TABLE 语句”](alter-table.html).

    `ALTER TABLE ... 删除分区`和[`old_alter_table=开启`](server-system-variables.html#sysvar_old_alter_table)重建分区表并尝试将数据从删除的分区移动到另一个具有兼容的分区`分区...值`定义。无法移动到另一个分区的数据将被删除。在早期版本中，`ALTER TABLE ... 删除分区`和[`old_alter_table=开启`](server-system-variables.html#sysvar_old_alter_table)删除存储在分区中的数据并删除分区。

-   [](<>) [`open_files_limit`](server-system-variables.html#sysvar_open_files_limit)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--open-files-limit=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[open_files_limit]（服务器系统变量.html#sysvar_open_files_limit）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `5000，可调整` |
    | 最小值 | `0` |
    | 最大值 | `平台相关` |

    可用的文件描述符的数量[**mysqld**](mysqld.html)从操作系统：

    -   启动时，[**mysqld**](mysqld.html)保留描述符`设置限制（）`，通过直接设置此变量或使用[`--open-files-limit`](mysqld-safe.html#option_mysqld_safe_open-files-limit)选项[**mysqld\_安全的**](mysqld-safe.html).如果[**mysqld**](mysqld.html)产生错误`打开的文件太多`, 尝试增加[`open_files_limit`](server-system-variables.html#sysvar_open_files_limit)价值。在内部，此变量的最大值是最大无符号整数值，但实际最大值取决于平台。

    -   在运行时，值[`open_files_limit`](server-system-variables.html#sysvar_open_files_limit)表示实际允许的文件描述符数[**mysqld**](mysqld.html)由操作系统，可能与启动时请求的值不同。如果启动时请求的文件描述符数量无法分配，[**mysqld**](mysqld.html)将警告写入错误日志。

        有效的[`open_files_limit`](server-system-variables.html#sysvar_open_files_limit)值基于系统启动时指定的值（如果有）和[`最大连接数`](server-system-variables.html#sysvar_max_connections)和[`table_open_cache`](server-system-variables.html#sysvar_table_open_cache)，使用这些公式：

    -   `10 + 最大连接数 + (table_open_cache * 2)`.使用这些变量的默认值会产生 8161。

        仅在 Windows 上，将 2048（C 运行时库文件描述符的最大值）添加到此数字。总计 10209，再次使用指定系统变量的默认值。

    -   `最大连接数 * 5`

    -   MySQL 8.0.19 及更高版本：操作系统限制。

    -   在 MySQL 8.0.19 之前：

        -   如果该限制为正但不是 Infinity，则为操作系统限制。

        -   如果操作系统限制为 Infinity：`open_files_limit`如果在启动时指定，则为 5000，否则为 5000。

        服务器尝试使用这些值中的最大值获取文件描述符的数量，上限为最大无符号整数值。如果无法获得那么多描述符，则服务器会尝试获得系统允许的尽可能多的描述符。

        在 MySQL 无法更改打开文件数的系统上，有效值为 0。

        在 Unix 上，该值不能设置为大于**ulimit -n**命令。在 Linux 系统上使用`系统`，该值不能设置为大于`限制NOFILE`（这是`DefaultLimitNOFILE`， 如果`限制NOFILE`未设置）；否则，在 Linux 上，值为`open_files_limit`不能超过**ulimit -n**.

-   [](<>) [`optimizer_prune_level`](server-system-variables.html#sysvar_optimizer_prune_level)

    [](<>)[](<>)

    | 命令行格式 | `--optimizer-prune-level=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[optimizer_prune_level]（服务器系统变量.html#sysvar_optimizer_prune_level）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `1` |
    | 最小值 | `0` |
    | 最大值 | `1` |

    控制在查询优化期间应用的启发式方法，以从优化器搜索空间中修剪不太有希望的部分计划。值 0 禁用启发式，以便优化器执行穷举搜索。值为 1 会导致优化器根据中间计划检索到的行数来修剪计划。

-   [](<>) [`优化器搜索深度`](server-system-variables.html#sysvar_optimizer_search_depth)

    [](<>)[](<>)

    | 命令行格式 | `--优化器搜索深度=#` |
    | ----- | ------------- |
    | 系统变量 | `[optimizer_search_depth]（服务器系统变量.html#sysvar_optimizer_search_depth）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `62` |
    | 最小值 | `0` |
    | 最大值 | `62` |

    查询优化器执行的最大搜索深度。大于查询中关系数的值会产生更好的查询计划，但需要更长的时间来生成查询的执行计划。小于查询中关系数的值会更快地返回执行计划，但生成的计划可能远非最优。如果设置为 0，系统会自动选择一个合理的值。

-   [](<>) [`优化器开关`](server-system-variables.html#sysvar_optimizer_switch)

    [](<>)[](<>)

    | 命令行格式 | `--优化器开关=值` |
    | ----- | ----------- |
    | 系统变量 | `[optimizer_switch]（服务器系统变量.html#sysvar_optimizer_switch）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 放 |
    | 有效值 (≥ 8.0.22) | `batched_key_access={开|关}`<br/><br/>`block_nested_loop={开|关}`<br/><br/>`condition_fanout_filter={开|关}`<br/><br/>`derived_condition_pushdown={开|关}`<br/><br/>`derived_merge={开|关}`<br/><br/>`重复除草={开|关}`<br/><br/>`engine_condition_pushdown={开|关}`<br/><br/>`firstmatch={开|关}`<br/><br/>`hash_join={开|关}`<br/><br/>`index_condition_pushdown={开|关}`<br/><br/>`index_merge={开|关}`<br/><br/>`index_merge_intersection={开|关}`<br/><br/>`index_merge_sort_union={开|关}`<br/><br/>`index_merge_union={开|关}`<br/><br/>`松散扫描={开|关}`<br/><br/>`物化={开|关}`<br/><br/>`mrr={开|关}`<br/><br/>`mrr_cost_based={开|关}`<br/><br/>`prefer_ordering_index={开|关}`<br/><br/>`semijoin={开|关}`<br/><br/>`skip_scan={开|关}`<br/><br/>`subquery_materialization_cost_based={开|关}`<br/><br/>`subquery_to_derived={开|关}`<br/><br/>`use_index_extensions={开|关}`<br/><br/>`use_invisible_indexes={开|关}` |
    | 有效值 (≥ 8.0.21) | `batched_key_access={开|关}`<br/><br/>`block_nested_loop={开|关}`<br/><br/>`condition_fanout_filter={开|关}`<br/><br/>`derived_merge={开|关}`<br/><br/>`重复除草={开|关}`<br/><br/>`engine_condition_pushdown={开|关}`<br/><br/>`firstmatch={开|关}`<br/><br/>`hash_join={开|关}`<br/><br/>`index_condition_pushdown={开|关}`<br/><br/>`index_merge={开|关}`<br/><br/>`index_merge_intersection={开|关}`<br/><br/>`index_merge_sort_union={开|关}`<br/><br/>`index_merge_union={开|关}`<br/><br/>`松散扫描={开|关}`<br/><br/>`物化={开|关}`<br/><br/>`mrr={开|关}`<br/><br/>`mrr_cost_based={开|关}`<br/><br/>`prefer_ordering_index={开|关}`<br/><br/>`semijoin={开|关}`<br/><br/>`skip_scan={开|关}`<br/><br/>`subquery_materialization_cost_based={开|关}`<br/><br/>`subquery_to_derived={开|关}`<br/><br/>`use_index_extensions={开|关}`<br/><br/>`use_invisible_indexes={开|关}` |
    | 有效值 (≥ 8.0.18) | `batched_key_access={开|关}`<br/><br/>`block_nested_loop={开|关}`<br/><br/>`condition_fanout_filter={开|关}`<br/><br/>`derived_merge={开|关}`<br/><br/>`重复除草={开|关}`<br/><br/>`engine_condition_pushdown={开|关}`<br/><br/>`firstmatch={开|关}`<br/><br/>`hash_join={开|关}`<br/><br/>`index_condition_pushdown={开|关}`<br/><br/>`index_merge={开|关}`<br/><br/>`index_merge_intersection={开|关}`<br/><br/>`index_merge_sort_union={开|关}`<br/><br/>`index_merge_union={开|关}`<br/><br/>`松散扫描={开|关}`<br/><br/>`物化={开|关}`<br/><br/>`mrr={开|关}`<br/><br/>`mrr_cost_based={开|关}`<br/><br/>`semijoin={开|关}`<br/><br/>`skip_scan={开|关}`<br/><br/>`subquery_materialization_cost_based={开|关}`<br/><br/>`use_index_extensions={开|关}`<br/><br/>`use_invisible_indexes={开|关}` |
    | 有效值 (≥ 8.0.13) | `batched_key_access={开|关}`<br/><br/>`block_nested_loop={开|关}`<br/><br/>`condition_fanout_filter={开|关}`<br/><br/>`derived_merge={开|关}`<br/><br/>`重复除草={开|关}`<br/><br/>`engine_condition_pushdown={开|关}`<br/><br/>`firstmatch={开|关}`<br/><br/>`index_condition_pushdown={开|关}`<br/><br/>`index_merge={开|关}`<br/><br/>`index_merge_intersection={开|关}`<br/><br/>`index_merge_sort_union={开|关}`<br/><br/>`index_merge_union={开|关}`<br/><br/>`松散扫描={开|关}`<br/><br/>`物化={开|关}`<br/><br/>`mrr={开|关}`<br/><br/>`mrr_cost_based={开|关}`<br/><br/>`semijoin={开|关}`<br/><br/>`skip_scan={开|关}`<br/><br/>`subquery_materialization_cost_based={开|关}`<br/><br/>`use_index_extensions={开|关}`<br/><br/>`use_invisible_indexes={开|关}` |
    | 有效值 (≤ 8.0.12) | `batched_key_access={开|关}`<br/><br/>`block_nested_loop={开|关}`<br/><br/>`condition_fanout_filter={开|关}`<br/><br/>`derived_merge={开|关}`<br/><br/>`重复除草={开|关}`<br/><br/>`engine_condition_pushdown={开|关}`<br/><br/>`firstmatch={开|关}`<br/><br/>`index_condition_pushdown={开|关}`<br/><br/>`index_merge={开|关}`<br/><br/>`index_merge_intersection={开|关}`<br/><br/>`index_merge_sort_union={开|关}`<br/><br/>`index_merge_union={开|关}`<br/><br/>`松散扫描={开|关}`<br/><br/>`物化={开|关}`<br/><br/>`mrr={开|关}`<br/><br/>`mrr_cost_based={开|关}`<br/><br/>`semijoin={开|关}`<br/><br/>`subquery_materialization_cost_based={开|关}`<br/><br/>`use_index_extensions={开|关}`<br/><br/>`use_invisible_indexes={开|关}` |

    这[`优化器开关`](server-system-variables.html#sysvar_optimizer_switch)系统变量可以控制优化器的行为。这个变量的值是一组标志，每个标志的值是`在`要么`离开`指示相应的优化器行为是启用还是禁用。此变量具有全局值和会话值，可以在运行时更改。全局默认值可以在服务器启动时设置。

    要查看当前的优化器标志集，请选择变量值：

    ```
    mysql> SELECT @@optimizer_switch\G
    *************************** 1. row ***************************
    @@optimizer_switch: index_merge=on,index_merge_union=on,
                        index_merge_sort_union=on,index_merge_intersection=on,
                        engine_condition_pushdown=on,index_condition_pushdown=on,
                        mrr=on,mrr_cost_based=on,block_nested_loop=on,
                        batched_key_access=off,materialization=on,semijoin=on,
                        loosescan=on,firstmatch=on,duplicateweedout=on,
                        subquery_materialization_cost_based=on,
                        use_index_extensions=on,condition_fanout_filter=on,
                        derived_merge=on,use_invisible_indexes=off,skip_scan=on,
                        hash_join=on,subquery_to_derived=off,
                        prefer_ordering_index=on,hypergraph_optimizer=off,
                        derived_condition_pushdown=on
    ```

    有关此变量的语法及其控制的优化器行为的更多信息，请参阅[第 8.9.2 节，“可切换的优化”](switchable-optimizations.html).

-   [](<>) [`优化器跟踪`](server-system-variables.html#sysvar_optimizer_trace)

    [](<>)[](<>)

    | 命令行格式 | `--优化器跟踪=值` |
    | ----- | ----------- |
    | 系统变量 | `[optimizer_trace](server-system-variables.html#sysvar_optimizer_trace)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |

    此变量控制优化器跟踪。有关详细信息，请参阅[MySQL 内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   [](<>) [`optimizer_trace_features`](server-system-variables.html#sysvar_optimizer_trace_features)

    [](<>)[](<>)

    | 命令行格式 | `--optimizer-trace-features=值` |
    | ----- | ------------------------------ |
    | 系统变量 | `[optimizer_trace_features](server-system-variables.html#sysvar_optimizer_trace_features)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |

    此变量启用或禁用选定的优化器跟踪功能。有关详细信息，请参阅[MySQL 内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   [](<>) [`optimizer_trace_limit`](server-system-variables.html#sysvar_optimizer_trace_limit)

    [](<>)[](<>)

    | 命令行格式 | `--optimizer-trace-limit=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[optimizer_trace_limit]（服务器系统变量.html#sysvar_optimizer_trace_limit）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1` |

    要显示的优化器跟踪的最大数量。有关详细信息，请参阅[MySQL 内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   [](<>) [`optimizer_trace_max_mem_size`](server-system-variables.html#sysvar_optimizer_trace_max_mem_size)

    [](<>)[](<>)

    | 命令行格式 | `--optimizer-trace-max-mem-size=#` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[optimizer_trace_max_mem_size](server-system-variables.html#sysvar_optimizer_trace_max_mem_size)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 是的 |
    | 类型 | 整数 |
    | 默认值 | `1048576` |

    存储的优化器跟踪的最大累积大小。有关详细信息，请参阅[MySQL 内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   [](<>) [`optimizer_trace_offset`](server-system-variables.html#sysvar_optimizer_trace_offset)

    [](<>)[](<>)

    | 命令行格式 | `--optimizer-trace-offset=#` |
    | ----- | ---------------------------- |
    | 系统变量 | `[optimizer_trace_offset](server-system-variables.html#sysvar_optimizer_trace_offset)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1` |

    要显示的优化器跟踪的偏移量。有关详细信息，请参阅[MySQL 内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   `performance_schema_*`xxx`*`

    性能模式系统变量列在[第 27.15 节，“性能模式系统变量”](performance-schema-system-variables.html).这些变量可用于配置性能模式操作。

-   [](<>) [`parser_max_mem_size`](server-system-variables.html#sysvar_parser_max_mem_size)

    [](<>)[](<>)

    | 命令行格式 | `--parser-max-mem-size=#` |
    | ----- | ------------------------- |
    | 系统变量 | `[parser_max_mem_size]（服务器系统变量.html#sysvar_parser_max_mem_size）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（64 位平台） | `18446744073709551615` |
    | 默认值（32 位平台） | `4294967295` |
    | 最小值 | `10000000` |
    | 最大值（64 位平台） | `18446744073709551615` |
    | 最大值（32 位平台） | `4294967295` |

    解析器可用的最大内存量。默认值对可用内存没有限制。可以减小该值以防止由于解析长或复杂的 SQL 语句而导致内存不足的情况。

-   [](<>) [`部分撤销`](server-system-variables.html#sysvar_partial_revokes)

    [](<>)[](<>)

    | 命令行格式 | `--partial-revokes[={OFF|ON}]` |
    | ----- | ------------------------------ |
    | 介绍 | 8.0.16 |
    | 系统变量 | `[partial_revokes]（服务器系统变量.html#sysvar_partial_revokes）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开`（如果不存在部分撤销）<br/><br/>`在`（如果存在部分撤销） |

    启用此变量可以部分撤销特权。具体来说，对于在全局级别具有权限的用户，[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)允许撤销特定模式的权限，同时保留其他模式的权限。例如，拥有全局[`更新`](privileges-provided.html#priv_update)可以限制该权限在`mysql`系统架构。（或者，换一种说法，用户可以行使[`更新`](privileges-provided.html#priv_update)对所有模式的特权，除了`mysql`schema.) 在这个意义上，用户的全局[`更新`](privileges-provided.html#priv_update)特权被部分撤销。

    启用后，[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)如果任何帐户有权限限制，则无法禁用。如果存在任何此类帐户，则禁用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)失败：

    -   对于尝试禁用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)在启动时，服务器会记录一条错误消息并启用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes).

    -   对于尝试禁用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)在运行时，会发生错误并且[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)值保持不变。

        禁用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)在这种情况下，首先修改每个已部分撤销权限的帐户，方法是重新授予权限或删除该帐户。

    笔记

    在权限分配中，启用[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)导致 MySQL 解释出现的未转义`_`和`%`架构名称中的 SQL 通配符作为文字字符，就像它们被转义为`\_`和`\%`.因为这改变了 MySQL 解释权限的方式，所以建议在安装的权限分配中避免未转义的通配符[`部分撤销`](server-system-variables.html#sysvar_partial_revokes)可以启用。

    有关详细信息，包括删除部分撤销的说明，请参阅[第 6.2.12 节，“使用部分撤销的权限限制”](partial-revokes.html).

-   [](<>) [`密码历史`](server-system-variables.html#sysvar_password_history)

    [](<>)[](<>)

    | 命令行格式 | `--密码历史=#` |
    | ----- | ---------- |
    | 系统变量 | `[password_history](server-system-variables.html#sysvar_password_history)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    此变量定义了基于所需的最小密码更改次数来控制先前密码重用的全局策略。对于以前使用的帐户密码，此变量表示在密码可以重复使用之前必须发生的后续帐户密码更改次数。如果值为 0（默认值），则没有基于密码更改次数的重用限制。

    对此变量的更改会立即应用于使用`密码历史默认值`选项。

    全局更改次数密码重用策略可以根据个人帐户的需要使用`密码历史`的选项[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)陈述。看[第 6.2.15 节，“密码管理”](password-management.html).

-   [](<>) [`password_require_current`](server-system-variables.html#sysvar_password_require_current)

    [](<>)[](<>)

    | 命令行格式 | `--password-require-current[={OFF|ON}]` |
    | ----- | --------------------------------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[password_require_current](server-system-variables.html#sysvar_password_require_current)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    此变量定义全局策略，用于控制尝试更改帐户密码是否必须指定要替换的当前密码。

    对此变量的更改会立即应用于使用`密码需要当前默认值`选项。

    可以根据需要为个人帐户覆盖需要验证的全局策略`密码要求`的选项[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)陈述。看[第 6.2.15 节，“密码管理”](password-management.html).

-   [](<>) [`password_reuse_interval`](server-system-variables.html#sysvar_password_reuse_interval)

    [](<>)[](<>)

    | 命令行格式 | `--密码重用间隔=#` |
    | ----- | ------------ |
    | 系统变量 | `[password_reuse_interval](server-system-variables.html#sysvar_password_reuse_interval)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    此变量定义了用于根据经过的时间控制重复使用先前密码的全局策略。对于以前使用的帐户密码，此变量表示密码可以重复使用之前必须经过的天数。如果值为 0（默认值），则没有基于已用时间的重用限制。

    对此变量的更改会立即应用于使用`密码重用间隔默认值`选项。

    可以根据个人帐户的需要，使用`密码重用间隔`的选项[`创建用户`](create-user.html)和[`更改用户`](alter-user.html)陈述。看[第 6.2.15 节，“密码管理”](password-management.html).

-   [](<>) [`persisted_globals_load`](server-system-variables.html#sysvar_persisted_globals_load)

    [](<>)[](<>)

    | 命令行格式 | `--persisted-globals-load[={OFF|ON}]` |
    | ----- | ------------------------------------- |
    | 系统变量 | `[persisted_globals_load]（服务器系统变量.html#sysvar_persisted_globals_load）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    是否从`mysqld-auto.cnf`数据目录中的文件。服务器通常在启动时在所有其他选项文件之后处理此文件（请参阅[第 4.2.2.2 节，“使用选项文件”](option-files.html)）。禁用[`persisted_globals_load`](server-system-variables.html#sysvar_persisted_globals_load)导致服务器启动序列跳过`mysqld-auto.cnf`.

    [](<>)[](<>)

    修改内容`mysqld-auto.cnf`， 使用[`设置坚持`](set-variable.html),[`SET PERSIST_ONLY`](set-variable.html)， 和[`重置坚持`](reset-persist.html)陈述。看[第 5.1.9.3 节，“持久系统变量”](persisted-system-variables.html).

-   [](<>) [`persist_only_admin_x509_subject`](server-system-variables.html#sysvar_persist_only_admin_x509_subject)

    [](<>)[](<>)

    | 命令行格式 | `--persist-only-admin-x509-subject=string` |
    | ----- | ------------------------------------------ |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[persist_only_admin_x509_subject]（服务器系统变量.html#sysvar_persist_only_admin_x509_subject）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `空字符串` |

    [`设置坚持`](set-variable.html)和[`SET PERSIST_ONLY`](set-variable.html)使系统变量持久化到`mysqld-auto.cnf`数据目录中的选项文件（参见[第 13.7.6.1 节，“变量赋值的 SET 语法”](set-variable.html)）。持久化系统变量支持影响后续服务器重启的运行时配置更改，这对于不需要直接访问 MySQL 服务器主机选项文件的远程管理很方便。但是，某些系统变量是不可持久的，或者只能在某些限制条件下持久。

    这[`persist_only_admin_x509_subject`](server-system-variables.html#sysvar_persist_only_admin_x509_subject)系统变量指定 SSL 证书 X.509 主题值，用户必须能够持久化受持久限制的系统变量。默认值为空字符串，它禁用主题检查，因此任何用户都无法持久化受限制的系统变量。

    如果[`persist_only_admin_x509_subject`](server-system-variables.html#sysvar_persist_only_admin_x509_subject)为非空，使用加密连接连接到服务器并提供具有指定主题值的 SSL 证书的用户可以使用[`SET PERSIST_ONLY`](set-variable.html)持久化受限制的系统变量。有关持久受限系统变量的信息和配置 MySQL 以启用的说明[`persist_only_admin_x509_subject`](server-system-variables.html#sysvar_persist_only_admin_x509_subject)， 看[第 5.1.9.4 节，“不可持久和受限的系统变量”](nonpersistible-system-variables.html).

-   [](<>) [`pid_file`](server-system-variables.html#sysvar_pid_file)

    [](<>)[](<>)

    | 命令行格式 | `--pid-file=file_name` |
    | ----- | ---------------------- |
    | 系统变量 | `[pid_file](服务器系统变量.html#sysvar_pid_file)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |

    服务器在其中写入其进程 ID 的文件的路径名。服务器在数据目录中创建文件，除非给出绝对路径名来指定不同的目录。如果指定此变量，则必须指定一个值。如果不指定此变量，MySQL 使用默认值`*`主机名`*.pid`， 在哪里*`主机名`*是主机的名称。

    进程 ID 文件被其他程序使用，例如[**mysqld\_安全的**](mysqld-safe.html)确定服务器的进程 ID。在 Windows 上，此变量还会影响默认错误日志文件名。看[第 5.4.2 节，“错误日志”](error-log.html).

-   [](<>) [`插件目录`](server-system-variables.html#sysvar_plugin_dir)

    [](<>)[](<>)

    | 命令行格式 | `--plugin-dir=dir_name` |
    | ----- | ----------------------- |
    | 系统变量 | `[plugin_dir]（服务器系统变量.html#sysvar_plugin_dir）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |
    | 默认值 | `基于/lib/插件` |

    插件目录的路径名。

    如果插件目录是服务器可写的，则用户可以使用以下命令将可执行代码写入目录中的文件[`选择...进入转储文件`](select.html).这可以通过使[`插件目录`](server-system-variables.html#sysvar_plugin_dir)只读到服务器或通过设置[`secure_file_priv`](server-system-variables.html#sysvar_secure_file_priv)到一个目录[`选择`](select.html)可以安全地进行写入。

-   [](<>) [`港口`](server-system-variables.html#sysvar_port)

    [](<>)[](<>)

    | 命令行格式 | `--port=port_num` |
    | ----- | ----------------- |
    | 系统变量 | `[端口]（服务器系统变量.html#sysvar_port）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `3306` |
    | 最小值 | `0` |
    | 最大值 | `65535` |

    服务器侦听 TCP/IP 连接的端口号。这个变量可以用[`- 港口`](server-options.html#option_mysqld_port)选项。

-   [](<>) [`preload_buffer_size`](server-system-variables.html#sysvar_preload_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--preload-buffer-size=#` |
    | ----- | ------------------------- |
    | 系统变量 | `[preload_buffer_size](server-system-variables.html#sysvar_preload_buffer_size)` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `32768` |
    | 最小值 | `1024` |
    | 最大值 | `1073741824` |

    预加载索引时分配的缓冲区大小。

    从 MySQL 8.0.27 开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`print_identified_with_as_hex`](server-system-variables.html#sysvar_print_identified_with_as_hex)

    [](<>)[](<>)

    | 命令行格式 | `--print-identified-with-as-hex[={OFF|ON}]` |
    | ----- | ------------------------------------------- |
    | 介绍 | 8.0.17 |
    | 系统变量 | `[print_identified_with_as_hex]（服务器系统变量.html#sysvar_print_identified_with_as_hex）` |
    | 范围 | 全球, 会话 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    密码哈希值显示在`认同`输出从句[`显示创建用户`](show-create-user.html)可能包含对终端显示器和其他环境有不利影响的不可打印字符。有可能[`打印识别为十六进制的`](server-system-variables.html#sysvar_print_identified_with_as_hex)原因[`显示创建用户`](show-create-user.html)将此类散列值显示为十六进制字符串，而不是常规字符串文本。即使启用了此变量，不包含不可打印字符的哈希值仍显示为常规字符串文字。

-   [](<>) [`剖析`](server-system-variables.html#sysvar_profiling)

    [](<>)[](<>)

    如果设置为0或`关`（默认情况下），将禁用语句分析。如果设置为1或`在…上`，语句分析已启用，并且[`显示个人资料`](show-profile.html)和[`显示个人资料`](show-profiles.html)语句提供对分析信息的访问。看见[第13.7.7.31节，“显示配置文件声明”](show-profiles.html).

    此变量已弃用；预计它将在未来的MySQL版本中被删除。

-   [](<>) [`分析_历史_大小`](server-system-variables.html#sysvar_profiling_history_size)

    [](<>)[](<>)

    要维护其分析信息的语句数（如果有）[`剖析`](server-system-variables.html#sysvar_profiling)已启用。默认值为15。最大值为100。将该值设置为0将有效禁用分析。看见[第13.7.7.31节，“显示配置文件声明”](show-profiles.html).

    此变量已弃用；预计它将在未来的MySQL版本中被删除。

-   [](<>) [`协议压缩算法`](server-system-variables.html#sysvar_protocol_compression_algorithms)

    [](<>)[](<>)

    | 命令行格式 | `--协议压缩算法=值` |
    | ----- | ------------ |
    | 介绍 | 8.0.18 |
    | 系统变量 | `[protocol_compression_algorithms]（服务器系统变量.html#sysvar_protocol_compression_algorithms）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 设置 |
    | 默认值 | `zlib，zstd，未压缩` |
    | 有效值 | `兹利布`<br/><br/>`zstd`<br/><br/>`未压缩` |

    服务器允许传入连接的压缩算法。其中包括客户端程序和参与源/副本复制或组复制的服务器之间的连接。压缩不适用于以下情况的连接：`联邦的`桌子。

    [`协议压缩算法`](server-system-variables.html#sysvar_protocol_compression_algorithms)不控制X协议的连接压缩。看见[第20.5.5节，“使用X插件的连接压缩”](x-plugin-connection-compression.html)获取有关如何操作的信息。

    变量值是一个由一个或多个逗号分隔的压缩算法名称组成的列表，按任意顺序从以下项目中选择（不区分大小写）：

    -   `兹利布`：允许使用`兹利布`压缩算法。

    -   `zstd`：允许使用`zstd`压缩算法（zstd 1.3）。

    -   `未压缩`：允许未压缩的连接。如果此算法名称未包含在[`协议压缩算法`](server-system-variables.html#sysvar_protocol_compression_algorithms)值时，服务器不允许未压缩的连接。它只允许使用该值中指定的任何其他算法的压缩连接，并且不支持未压缩连接。

        的默认值`zlib，zstd，未压缩`指示服务器允许所有压缩算法。

        有关更多信息，请参阅[第4.2.8节，“连接压缩控制”](connection-compression-control.html).

-   [](<>) [`协议版本`](server-system-variables.html#sysvar_protocol_version)

    [](<>)[](<>)

    | 系统变量 | `[protocol_version]（server system variables.html#sysvar_protocol_version）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |

    MySQL服务器使用的客户机/服务器协议的版本。

-   [](<>) [`代理用户`](server-system-variables.html#sysvar_proxy_user)

    [](<>)[](<>)

    | 系统变量 | `[proxy_user]（server system variables.html#sysvar_proxy_user）` |
    | ---- | -------------------------------------------------------------- |
    | 范围 | 一场 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    如果当前客户端是另一个用户的代理，则此变量是代理用户帐户名。否则，这个变量是`无效的`看见[第6.2.19节“代理用户”](proxy-users.html).

-   [](<>) [`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)

    [](<>)[](<>)

    | 介绍 | 8.0.26 |
    | --- | ------ |
    | 系统变量 | `[pseudo_replica_mode]（server system variables.html#sysvar_pseudo_replica_mode）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |

    从MySQL 8.0.26开始，[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)用来代替[`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode)，该版本已弃用。操作和效果是一样的，只是术语发生了变化。

    [`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)供内部服务器使用。它有助于正确处理源于较旧或较新服务器的事务，而不是当前处理这些事务的服务器。[**mysqlbinlog**](mysqlbinlog.html)设置的值[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)在执行任何SQL语句之前设置为true。

    设置的会话值[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)这是一项限制性行动。会话用户必须具有[`复制应用程序`](privileges-provided.html#priv_replication-applier)特权（见[第17.3.3节，“复制权限检查”](replication-privilege-checks.html))，或足以设置受限会话变量的权限（请参阅[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html)).但是，请注意，该变量不是供用户设置的；它由复制基础架构自动设置。

    [`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)对已准备好的XA事务的处理有以下影响，这些事务可以附加到处理会话（默认情况下，是发出[`XA开始`](xa.html)):

    -   如果为true，则处理会话已执行内部使用[`宾洛格`](binlog.html)语句中，事务的第一部分到达时，XA事务将自动从会话中分离[`XA准备`](xa.html)完成，以便任何具有[`XA_RECOVER_ADMIN`](privileges-provided.html#priv_xa-recover-admin)特权

    -   如果为false，XA事务将保持连接到处理会话，只要该会话处于活动状态，在此期间，其他会话无法提交该事务。只有在会话断开连接或服务器重新启动时，准备好的事务才会分离。

    [`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)对环境有以下影响`原始提交时间戳`复制延迟时间戳和[`原始服务器版本`](replication-options-source.html#sysvar_original_server_version)系统变量：

    -   如果为true，则不显式设置`原始提交时间戳`或[`原始服务器版本`](replication-options-source.html#sysvar_original_server_version)假设源于另一个未知服务器，因此将值0（表示未知）分配给时间戳和系统变量。

    -   如果为false，则为未显式设置`原始提交时间戳`或[`原始服务器版本`](replication-options-source.html#sysvar_original_server_version)假设源于当前服务器，因此将当前时间戳和当前服务器的版本分配给时间戳和系统变量。

        在MySQL 8.0.14及更高版本中，[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)对设置一个或多个不受支持（已删除或未知）的SQL模式的语句的处理有以下影响：

    -   如果为true，服务器将忽略不支持的模式并发出警告。

    -   如果为false，则服务器将以[`ER_不支持SQL_模式`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_unsupported_sql_mode).

-   [](<>) [`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode)

    [](<>)[](<>)

    | 反对 | 8.0.26 |
    | --- | ------ |
    | 系统变量 | `[pseudo_slave_mode]（server system variables.html#sysvar_pseudo_slave_mode）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |

    从MySQL 8.0.26开始，[`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode)已弃用，且别名[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)取而代之的是。[`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode)供内部服务器使用。它有助于正确处理源于较旧或较新服务器的事务，而不是当前处理这些事务的服务器。[**mysqlbinlog**](mysqlbinlog.html)设置的值[`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode)在执行任何SQL语句之前设置为true。

    设置此系统变量的会话值是一项受限操作。会话用户必须具有[`复制应用程序`](privileges-provided.html#priv_replication-applier)特权（见[第17.3.3节，“复制权限检查”](replication-privilege-checks.html))，或足以设置受限会话变量的权限（请参阅[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html)).但是，请注意，该变量不是供用户设置的；它由复制基础架构自动设置。

    请参见对[`伪复制模式`](server-system-variables.html#sysvar_pseudo_replica_mode)系统变量的影响[`伪从模式`](server-system-variables.html#sysvar_pseudo_slave_mode).

-   [](<>) [`伪线程 ID`](server-system-variables.html#sysvar_pseudo_thread_id)

    [](<>)[](<>)

    | 系统变量 | `[pseudo_thread_id]（服务器系统变量.html#sysvar_pseudo_thread_id）` |
    | ---- | ---------------------------------------------------------- |
    | 范围 | 会议 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |

    此变量供内部服务器使用。

    警告

    更改会话值[`伪线程 ID`](server-system-variables.html#sysvar_pseudo_thread_id)系统变量改变了返回的值[`CONNECTION_ID()`](information-functions.html#function_connection-id)功能。

    从 MySQL 8.0.14 开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足以设置受限会话变量的权限。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`query_alloc_block_size`](server-system-variables.html#sysvar_query_alloc_block_size)

    [](<>)[](<>)

    | 命令行格式 | `--查询分配块大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[query_alloc_block_size]（服务器系统变量.html#sysvar_query_alloc_block_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8192` |
    | 最小值 | `1024` |
    | 最大值 | `4294966272` |
    | 单元 | `字节` |
    | 块大小 | `1024` |

    为语句解析和执行期间创建的对象分配的内存块的分配大小（字节）。如果内存碎片有问题，增加这个参数可能会有所帮助。

    字节数的块大小为1024。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

-   [](<>) [`查询预分配大小`](server-system-variables.html#sysvar_query_prealloc_size)

    [](<>)[](<>)

    | 命令行格式 | `--查询预分配大小=#` |
    | ----- | ------------- |
    | 反对 | 8.0.29 |
    | 系统变量 | `[query_prealloc_size]（server system variables.html#sysvar_query_prealloc_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8192` |
    | 最小值 | `8192` |
    | 最大值（64位平台） | `18446744073709550592` |
    | 最大值（32位平台） | `4294966272` |
    | 块大小 | `1024` |

    *MySQL 8.0.28及更早版本*：设置用于语句解析和执行的持久缓冲区的大小（字节）。语句之间不会释放此缓冲区。如果您运行的是复杂的查询，那么`查询预分配大小`值可能有助于提高性能，因为它可以减少服务器在查询执行操作期间执行内存分配的需要。你应该知道，这样做并不一定会完全消除分配；在某些情况下，服务器仍然可以分配内存，例如与事务或存储程序相关的操作。

    从MySQL 8.0.29开始，`查询预分配大小`已弃用，设置它不再有任何效果；您应该期待在MySQL的未来版本中删除它。

    块大小为1024。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

-   [](<>) [`兰杜种子1`](server-system-variables.html#sysvar_rand_seed1)

    [](<>)[](<>)

    | 系统变量 | `[rand_seed1]（server system variables.html#sysvar_rand_seed1）` |
    | ---- | -------------------------------------------------------------- |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |

    这个[`兰杜种子1`](server-system-variables.html#sysvar_rand_seed1)和[`兰杜种子2`](server-system-variables.html#sysvar_rand_seed2)变量仅作为会话变量存在，可以设置但不能读取。变量的输出中显示的是变量，而不是它们的值[`显示变量`](show-variables.html).

    这些变量的目的是支持[`兰德（）`](mathematical-functions.html#function_rand)作用对于调用[`兰德（）`](mathematical-functions.html#function_rand)，源将两个值传递给复制副本，用于为随机数生成器种子。复制副本使用这些值来设置会话变量[`兰杜种子1`](server-system-variables.html#sysvar_rand_seed1)和[`兰杜种子2`](server-system-variables.html#sysvar_rand_seed2)因此[`兰德（）`](mathematical-functions.html#function_rand)在复制副本上生成的值与在源上生成的值相同。

-   [](<>) [`兰杜种子2`](server-system-variables.html#sysvar_rand_seed2)

    [](<>)[](<>)

    有关详细信息，请参见说明[`兰杜种子1`](server-system-variables.html#sysvar_rand_seed1).

-   [](<>) [`范围_所有_块_大小`](server-system-variables.html#sysvar_range_alloc_block_size)

    [](<>)[](<>)

    | 命令行格式 | `--范围分配块大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[range_alloc_block_size]（server system variables.html#sysvar_range_alloc_block_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `4096` |
    | 最小值 | `4096` |
    | 最大值（64位平台） | `18446744073709550592` |
    | 最大值 | `4294966272` |
    | 块大小 | `1024` |

    执行范围优化时分配的块大小（字节）。

    字节数的块大小为1024。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

-   [](<>) [`范围\优化器\最大\内存\大小`](server-system-variables.html#sysvar_range_optimizer_max_mem_size)

    [](<>)[](<>)

    | 命令行格式 | `--范围优化器最大内存大小=#` |
    | ----- | ----------------- |
    | 系统变量 | `[range_optimizer_max_mem_size]（server system variables.html#sysvar_range_optimizer_max_mem_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8388608` |
    | 最小值 | `0` |
    | 最大值 | `18446744073709551615` |

    范围优化器的内存消耗限制。值为0表示“无限制”如果优化器考虑的执行计划使用范围访问方法，但优化器估计该方法所需的内存量将超过限制，它将放弃该计划并考虑其他计划。有关更多信息，请参阅[限制内存使用范围优化](range-optimization.html#range-optimization-memory-use).

-   [](<>) [`rbr_执行模式`](server-system-variables.html#sysvar_rbr_exec_mode)

    [](<>)[](<>)

    | 系统变量 | `[rbr_exec_mode]（server system variables.html#sysvar_rbr_exec_mode）` |
    | ---- | -------------------------------------------------------------------- |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `严格的` |
    | 有效值 | `严格的`<br/><br/>`幂等元` |

    供内部使用[**mysqlbinlog**](mysqlbinlog.html).此变量在以下两种情况下切换服务器：`幂等元`模式和`严格的`模式`幂等元`模式导致重复密钥被抑制，并且在中未找到密钥错误[`宾洛格`](binlog.html)由生成的语句[**mysqlbinlog**](mysqlbinlog.html)。在服务器上重放基于行的二进制日志时，此模式非常有用，因为它会导致与现有数据冲突。[**mysqlbinlog**](mysqlbinlog.html)在指定[`--幂等元`](mysqlbinlog.html#option_mysqlbinlog_idempotent)选项，将以下内容写入输出：

    ```
    SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
    ```

    从MySQL 8.0.18开始，设置此系统变量的会话值不再是一项受限操作。

-   [](<>) [`读取缓冲区大小`](server-system-variables.html#sysvar_read_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--读取缓冲区大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[read_buffer_size]（server system variables.html#sysvar_read_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `131072` |
    | 最小值 | `8192` |
    | 最大值 | `2147479552` |
    | 块大小 | `4096` |

    每个线程都会对`米萨姆`table为它扫描的每个表分配一个这样大小的缓冲区（以字节为单位）。如果进行多次连续扫描，可能需要增加该值，默认值为131072。此变量的值应为4KB的倍数。如果设置的值不是4KB的倍数，则其值将向下舍入到最接近的4KB倍数。

    对于所有存储引擎，此选项也在以下上下文中使用：

    -   用于在对行进行排序时，将索引缓存到临时文件（而不是临时表）中`订购人`.

    -   对于批量插入到分区。

    -   用于缓存嵌套查询的结果。

    [`读取缓冲区大小`](server-system-variables.html#sysvar_read_buffer_size)也用于另一种特定于存储引擎的方式：确定[`记忆力`](memory-storage-engine.html)桌子。

    从MySQL 8.0.22开始[`在缓冲区大小中选择`](server-system-variables.html#sysvar_select_into_buffer_size)用于代替的值`读取缓冲区大小`用于执行时使用的缓冲区[`选择到转储文件中`](select-into.html)和`选择输出文件`声明。

    有关不同操作期间内存使用的更多信息，请参阅[第8.12.3.1节，“MySQL如何使用内存”](memory-use.html).

-   [](<>) [`只读`](server-system-variables.html#sysvar_read_only)

    [](<>)[](<>)

    | 命令行格式 | `--只读[={OFF | ON}]` |
    | ----- | ------------------- |
    | 系统变量 | `[只读]（server system variables.html#sysvar_只读）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果[`只读`](server-system-variables.html#sysvar_read_only)启用系统变量后，服务器不允许客户端更新，只有拥有[`连接管理`](privileges-provided.html#priv_connection-admin)特权（或不推荐的[`超级的`](privileges-provided.html#priv_super)特权）。默认情况下禁用此变量。

    服务器还支持[`超级只读`](server-system-variables.html#sysvar_super_read_only)系统变量（默认情况下禁用），具有以下效果：

    -   如果[`超级只读`](server-system-variables.html#sysvar_super_read_only)如果启用，服务器将禁止客户端更新，即使是拥有[`连接管理`](privileges-provided.html#priv_connection-admin)或[`超级的`](privileges-provided.html#priv_super)特权

    -   背景[`超级只读`](server-system-variables.html#sysvar_super_read_only)到`在…上`含蓄的力量[`只读`](server-system-variables.html#sysvar_read_only)到`在…上`.

    -   背景[`只读`](server-system-variables.html#sysvar_read_only)到`关`含蓄的力量[`超级只读`](server-system-variables.html#sysvar_super_read_only)到`关`.

        什么时候[`只读`](server-system-variables.html#sysvar_read_only)已启用，何时启用[`超级只读`](server-system-variables.html#sysvar_super_read_only)启用后，服务器仍允许以下操作：

    -   如果服务器是副本，则由复制线程执行更新。在复制设置中，启用[`只读`](server-system-variables.html#sysvar_read_only)在副本服务器上，确保副本只接受来自源服务器的更新，而不接受来自客户端的更新。

    -   写入系统表`mysql。gtid_已执行`，它存储当前二进制日志文件中不存在的已执行事务的GTID。

    -   使用[`分析表`](analyze-table.html)或[`优化表格`](optimize-table.html)声明。只读模式的目的是防止表结构或内容发生更改。分析和优化不属于此类变更。例如，这意味着可以使用[**mysqlcheck——所有数据库——分析**](mysqlcheck.html).

    -   手术`短暂的`桌子。

    -   插入到日志表中(`mysql。一般日志`和`mysql。慢日志`); 看见[第5.4.1节，“选择常规查询日志和慢速查询日志输出目标”](log-destinations.html).

    -   对性能模式表的更新，例如[`使现代化`](update.html)或[`截断表`](truncate-table.html)操作。

        改变[`只读`](server-system-variables.html#sysvar_read_only)在复制源服务器上，数据不会复制到副本服务器。可以在副本上设置该值，而不依赖于源上的设置。

        以下条件适用于尝试启用[`只读`](server-system-variables.html#sysvar_read_only)（包括因启用[`超级只读`](server-system-variables.html#sysvar_super_read_only)):

    -   如果您有任何显式锁（通过[`锁桌`](lock-tables.html))或者有一笔未决交易。

    -   当其他客户端有任何正在进行的语句处于活动状态时，尝试将被阻止`锁表写入`，或持续提交，直到释放锁，语句和事务结束。而[`只读`](server-system-variables.html#sysvar_read_only)处于挂起状态时，其他客户端对表锁或开始事务的请求也会被阻止，直到[`只读`](server-system-variables.html#sysvar_read_only)已经设定好了。

    -   如果存在持有元数据锁的活动事务，则尝试将被阻止，直到这些事务结束。

    -   [`只读`](server-system-variables.html#sysvar_read_only)可在您持有全局读取锁（通过[`用读锁冲洗桌子`](flush.html#flush-tables-with-read-lock))因为这不涉及表锁。

-   [](<>) [`读取缓冲区大小`](server-system-variables.html#sysvar_read_rnd_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--读取rnd缓冲区大小=#` |
    | ----- | ---------------- |
    | 系统变量 | `[read_rnd_buffer_size]（server system variables.html#sysvar_read_rnd_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `262144` |
    | 最小值 | `1.` |
    | 最大值 | `2147483647` |

    此变量用于从`米萨姆`表，并且，对于任何存储引擎，用于多范围读取优化。

    当从文件中读取行时`米萨姆`表按排序顺序执行键排序操作后，通过该缓冲区读取行以避免磁盘搜索。看见[第8.2.1.16节，“按优化排序”](order-by-optimization.html).将变量设置为较大的值可以提高`订购人`表现非常出色。但是，这是为每个客户机分配的缓冲区，因此不应将全局变量设置为大值。相反，只在需要运行大型查询的客户机中更改会话变量。

    有关不同操作期间内存使用的更多信息，请参阅[第8.12.3.1节，“MySQL如何使用内存”](memory-use.html).有关多范围读取优化的信息，请参阅[第8.2.1.11节，“多量程读取优化”](mrr-optimization.html).

-   [](<>) [`regexp_stack_limit`](server-system-variables.html#sysvar_regexp_stack_limit)

    [](<>)[](<>)

    | 命令行格式 | `--regexp堆栈限制=#` |
    | ----- | ---------------- |
    | 系统变量 | `[regexp_stack_limit]（server system variables.html#sysvar_regexp_stack_limit）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8000000` |
    | 最小值 | `0` |
    | 最大值 | `2147483647` |

    用于执行正则表达式匹配操作的内部堆栈的最大可用内存（字节）[`REGEXP_LIKE（）`](regexp.html#function_regexp-like)以及类似的功能（参见[第12.8.2节“正则表达式”](regexp.html)).

-   [](<>) [`regexp_时间限制`](server-system-variables.html#sysvar_regexp_time_limit)

    [](<>)[](<>)

    | 命令行格式 | `--regexp时间限制=#` |
    | ----- | ---------------- |
    | 系统变量 | `[regexp_time_limit]（server system variables.html#sysvar_regexp_time_limit）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `32` |
    | 最小值 | `0` |
    | 最大值 | `2147483647` |

    由执行的正则表达式匹配操作的时间限制[`REGEXP_LIKE（）`](regexp.html#function_regexp-like)以及类似的功能（参见[第12.8.2节“正则表达式”](regexp.html))。此限制表示为匹配引擎执行的最大允许步骤数，因此仅间接影响执行时间。通常，它是以毫秒为单位的。

-   [](<>) [`需要行格式`](server-system-variables.html#sysvar_require_row_format)

    [](<>)[](<>)

    | 介绍 | 8.0.19 |
    | --- | ------ |
    | 系统变量 | `[require_row_format]（server system variables.html#sysvar_require_row_format）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量用于复制和复制的内部服务器使用[**mysqlbinlog**](mysqlbinlog.html)。它将会话中执行的DML事件限制为仅以基于行的二进制日志格式编码的事件，并且无法创建临时表。不遵守限制的查询将失败。

    将此系统变量的会话值设置为`在…上`不需要特权。将此系统变量的会话值设置为`关`是受限操作，会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`需要安全的交通工具`](server-system-variables.html#sysvar_require_secure_transport)

    [](<>)[](<>)

    | 命令行格式 | `--需要安全传输[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[require_secure_transport]（server system variables.html#sysvar_require_secure_transport）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否需要客户端连接到服务器才能使用某种形式的安全传输。启用此变量后，服务器只允许使用TLS/SSL加密的TCP/IP连接，或使用套接字文件（在Unix上）或共享内存（在Windows上）的连接。服务器拒绝不安全的连接尝试，这些尝试失败时会出现错误[`ER_安全_运输_需要`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_secure_transport_required)错误

    此功能补充了优先考虑的每个帐户SSL要求。例如，如果帐户定义为`需要SSL`，使能[`需要安全的交通工具`](server-system-variables.html#sysvar_require_secure_transport)无法使用该帐户使用Unix套接字文件进行连接。

    服务器可能没有可用的安全传输。例如，Windows上的服务器如果启动时没有指定任何SSL证书或密钥文件，并且使用[`共享内存`](server-system-variables.html#sysvar_shared_memory)系统变量已禁用。在这些情况下，尝试启用[`需要安全的交通工具`](server-system-variables.html#sysvar_require_secure_transport)启动时，使服务器将消息写入错误日志并退出。尝试在运行时启用该变量失败，错误为[`ER_无_安全_传输_配置`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_no_secure_transports_configured)错误

    另见[强制配置加密连接](using-encrypted-connections.html#mandatory-encrypted-connections).

-   [](<>) [`结果集_元数据`](server-system-variables.html#sysvar_resultset_metadata)

    [](<>)[](<>)

    | 系统变量 | `[resultset_metadata]（server system variables.html#sysvar_resultset_metadata）` |
    | ---- | ------------------------------------------------------------------------------ |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `满的` |
    | 有效值 | `满的`<br/><br/>`没有一个` |

    对于元数据传输是可选的连接，客户端设置[`结果集_元数据`](server-system-variables.html#sysvar_resultset_metadata)用于控制服务器是否返回结果集元数据的系统变量。允许值为`满的`（返回所有元数据；这是默认值）和`没有一个`（不返回元数据）。

    对于非元数据可选的连接，请设置[`结果集_元数据`](server-system-variables.html#sysvar_resultset_metadata)到`没有一个`产生一个错误。

    有关管理结果集元数据传输的详细信息，请参阅[可选结果集元数据](https://dev.mysql.com/doc/c-api/8.0/en/c-api-optional-metadata.html).

-   [](<>) [`辅助引擎成本阈值`](server-system-variables.html#sysvar_secondary_engine_cost_threshold)

    [](<>)[](<>)

    | 介绍 | 8.0.16 |
    | --- | ------ |
    | 系统变量 | `[secondary_engine_cost_threshold]（server system variables.html#sysvar_secondary_engine_cost_threshold）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 数字的 |
    | 默认值 | `100000` |
    | 最小值 | `0` |
    | 最大值 | `DBL_最大值（最大双倍值）` |

    查询卸载到辅助引擎的优化器成本阈值。

    用于热浪。看见[热浪用户指南](https://dev.mysql.com/doc/heatwave/en/).

-   [](<>) [`模式\定义\缓存`](server-system-variables.html#sysvar_schema_definition_cache)

    [](<>)[](<>)

    | 命令行格式 | `--模式定义缓存=#` |
    | ----- | ------------ |
    | 系统变量 | `[schema_definition_cache]（server system variables.html#sysvar_schema_definition_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `256` |
    | 最小值 | `256` |
    | 最大值 | `524288` |

    定义可保留在字典对象缓存中的已使用和未使用架构定义对象的数量限制。

    未使用的架构定义对象仅在使用的数量小于`模式\定义\缓存`.

    一套`0`意味着模式定义对象仅在使用时保存在字典对象缓存中。

    有关更多信息，请参阅[第14.4节，“字典对象缓存”](data-dictionary-object-cache.html).

-   [](<>) [`安全文件`](server-system-variables.html#sysvar_secure_file_priv)

    [](<>)[](<>)

    | 命令行格式 | `--安全文件priv=dir\u name` |
    | ----- | ----------------------- |
    | 系统变量 | `[secure_file_priv]（server system variables.html#sysvar_secure_file_priv）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `特定平台` |
    | 有效值 | `空字符串`<br/><br/>`目录名`<br/><br/>`无效的` |

    此变量用于限制数据导入和导出操作的效果，例如[`加载数据`](load-data.html)和[`选择到外边去`](select-into.html)声明和[`加载_文件（）`](string-functions.html#function_load-file)作用这些操作只允许拥有[`文件`](privileges-provided.html#priv_file)特权

    [`安全文件`](server-system-variables.html#sysvar_secure_file_priv)可设置如下：

    -   如果为空，则变量无效。这不是一个安全的设置。

    -   如果设置为目录名，则服务器会将导入和导出操作限制为仅处理该目录中的文件。目录必须存在；服务器不会创建它。

    -   如果设置为`无效的`，服务器将禁用导入和导出操作。

        默认值是特定于平台的，取决于[`安装布局`](source-configuration-options.html#option_cmake_install_layout) **CMake**选项，如下表所示。指定默认值的步骤[`安全文件`](server-system-variables.html#sysvar_secure_file_priv)如果是从源代码构建，请使用[`安装_SECURE _FILE _PRIVDIR`](source-configuration-options.html#option_cmake_install_secure_file_privdir) **CMake**选项

    | `安装布局`价值 | 违约`安全文件`价值 |
    | -------- | ---------- |
    | `独立的` | 空的 |
    | `黛布`, `转速`, `SVR4` | `/var/lib/mysql文件` |
    | 否则 | `mysql文件`在[`CMAKE_安装_前缀`](source-configuration-options.html#option_cmake_cmake_install_prefix)价值 |

    服务器检查[`安全文件`](server-system-variables.html#sysvar_secure_file_priv)启动时，如果该值不安全，则将警告写入错误日志。非-`无效的`如果值为空，或者该值是数据目录或其子目录，或者是所有用户都可以访问的目录，则认为该值不安全。如果[`安全文件`](server-system-variables.html#sysvar_secure_file_priv)设置为不存在的路径时，服务器将错误消息写入错误日志并退出。

-   [](<>) [`在缓冲区大小中选择`](server-system-variables.html#sysvar_select_into_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--选择缓冲区大小=#` |
    | ----- | ------------- |
    | 介绍 | 8.0.22 |
    | 系统变量 | `[select_into_buffer_size]（server system variables.html#sysvar_select_into_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `131072` |
    | 最小值 | `8192` |
    | 最大值 | `2147479552` |
    | 单元 | `字节` |
    | 块大小 | `4096` |

    使用时[`选择输出文件`](select-into.html)或`选择到转储文件中`为了将数据转储到一个或多个文件中以用于备份创建、数据迁移或其他目的，通常可以缓冲写操作，然后触发磁盘或其他存储设备的大量写I/O活动，并暂停其他对延迟更敏感的查询。您可以使用此变量来控制用于将数据写入存储设备的缓冲区大小，以确定何时应该发生缓冲区同步，从而防止发生刚才描述的那种写入暂停。

    `在缓冲区大小中选择`覆盖为设置的任何值[`读取缓冲区大小`](server-system-variables.html#sysvar_read_buffer_size). (`在缓冲区大小中选择`和`读取缓冲区大小`具有相同的默认值、最大值和最小值。）你也可以使用[`选择进入磁盘同步延迟`](server-system-variables.html#sysvar_select_into_disk_sync_delay)要设置在每次同步发生后要观察的超时。

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`选择_进入_磁盘_同步`](server-system-variables.html#sysvar_select_into_disk_sync)

    [](<>)[](<>)

    | 命令行格式 | `--选择进入磁盘同步={ON | OFF}` |
    | ----- | ----------------------- |
    | 介绍 | 8.0.22 |
    | 系统变量 | `[select_into_disk_sync]（server system variables.html#sysvar_select_into_disk_sync）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |
    | 有效值 | `关`<br/><br/>`在…上` |

    什么时候开始`在…上`，通过长时间运行的[`选择输出文件`](select-into.html)或`选择到转储文件中`语句使用[`在缓冲区大小中选择`](server-system-variables.html#sysvar_select_into_buffer_size).

-   [](<>) [`选择进入磁盘同步延迟`](server-system-variables.html#sysvar_select_into_disk_sync_delay)

    [](<>)[](<>)

    | 命令行格式 | `--选择进入磁盘同步延迟=#` |
    | ----- | ---------------- |
    | 介绍 | 8.0.22 |
    | 系统变量 | `[select_into_disk_sync_delay]（server system variables.html#sysvar_select_into_disk_sync_delay）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `31536000` |
    | 单元 | `毫秒` |

    当缓冲区通过长时间运行来同步写入输出文件时[`选择输出文件`](select-into.html)或`选择到转储文件中`语句由启用[`选择_进入_磁盘_同步`](server-system-variables.html#sysvar_select_into_disk_sync)，此变量设置同步后的可选延迟（毫秒）。`0`（默认）意味着没有延迟。

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`课时追踪`](server-system-variables.html#sysvar_session_track_gtids)

    [](<>)[](<>)[](<>)[](<>)

    | 命令行格式 | `--会话跟踪gtids=值` |
    | ----- | --------------- |
    | 系统变量 | `[session_track_gtids]（server system variables.html#sysvar_session_track_gtids）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `关` |
    | 有效值 | `关`<br/><br/>`自有品牌`<br/><br/>`所有的` |

    控制服务器是否将GTID返回给客户端，使客户端能够使用GTID跟踪服务器状态。根据变量值，在执行每个事务结束时，服务器的GTID被捕获并作为确认的一部分返回给客户端。的可能值[`课时追踪`](server-system-variables.html#sysvar_session_track_gtids)详情如下：

    -   `关`：服务器不会将GTID返回给客户端。这是默认设置。

    -   `自有品牌`：服务器返回自上次确认以来该客户端在其当前会话中成功提交的所有事务的GTID。通常，这是提交的最后一个事务的单个GTID，但如果单个客户端请求导致多个事务，服务器将返回一个包含所有相关GTID的GTID集。

    -   `所有的`：服务器返回其[`gtid_已执行`](replication-options-gtids.html#sysvar_gtid_executed)系统变量，它在事务成功提交后的某个点读取该变量。除了刚刚提交的事务的GTID之外，该GTID集还包括任何客户端在服务器上提交的所有事务，并且可以包括当前确认的事务提交后提交的事务。

    [`课时追踪`](server-system-variables.html#sysvar_session_track_gtids)无法在事务上下文中设置。

    有关会话状态跟踪的更多信息，请参阅[第5.1.18节，“客户端会话状态的服务器跟踪”](session-state-tracking.html).

-   [](<>) [`会话跟踪模式`](server-system-variables.html#sysvar_session_track_schema)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--会话跟踪模式[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[session_track_schema]（server system variables.html#sysvar_session_track_schema）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    控制服务器是否跟踪在当前会话中设置默认架构（数据库）的时间，并通知客户端使架构名称可用。

    如果启用了模式名称跟踪器，则每次设置默认模式时都会发生名称通知，即使新模式名称与旧模式名称相同。

    有关会话状态跟踪的更多信息，请参阅[第5.1.18节，“客户端会话状态的服务器跟踪”](session-state-tracking.html).

-   [](<>) [`会话\跟踪\状态\更改`](server-system-variables.html#sysvar_session_track_state_change)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--会话跟踪状态更改[={OFF | ON}]` |
    | ----- | ------------------------- |
    | 系统变量 | `[session_track_state_change]（server system variables.html#sysvar_session_track_state_change）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    控制服务器是否跟踪当前会话状态的更改，并在状态发生更改时通知客户端。可以报告客户端会话状态的这些属性的更改：

    -   默认模式（数据库）。

    -   系统变量的特定于会话的值。

    -   用户定义的变量。

    -   临时桌子。

    -   准备好的声明。

        如果启用了会话状态跟踪器，则即使新属性值与旧属性值相同，也会为涉及跟踪的会话属性的每次更改发出通知。例如，将用户定义的变量设置为其当前值会导致通知。

        这个[`会话\跟踪\状态\更改`](server-system-variables.html#sysvar_session_track_state_change)变量只控制何时发生更改的通知，而不是更改的内容。例如，如果设置了默认模式或分配了跟踪会话系统变量，但通知不包括模式名称或变量值，则会发生状态更改通知。要接收架构名称或会话系统变量值的通知，请使用[`会话跟踪模式`](server-system-variables.html#sysvar_session_track_schema)或[`会话跟踪系统变量`](server-system-variables.html#sysvar_session_track_system_variables)分别是系统变量。

    笔记

    给…赋值[`会话\跟踪\状态\更改`](server-system-variables.html#sysvar_session_track_state_change)其本身不被视为状态变化，也不作为状态变化进行报告。但是，如果其名称列在[`会话跟踪系统变量`](server-system-variables.html#sysvar_session_track_system_variables)，对它的任何赋值都会导致新值的通知。

    有关会话状态跟踪的更多信息，请参阅[第5.1.18节，“客户端会话状态的服务器跟踪”](session-state-tracking.html).

-   [](<>) [`会话跟踪系统变量`](server-system-variables.html#sysvar_session_track_system_variables)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--会话跟踪系统变量=#` |
    | ----- | -------------- |
    | 系统变量 | `[session_track_system_variables]（server system variables.html#sysvar_session_track_system_variables）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `时区、自动提交、字符集客户端、字符集结果、字符集连接` |

    控制服务器是否跟踪会话系统变量的分配，并将每个分配变量的名称和值通知客户端。变量值是一个逗号分隔的变量列表，用于跟踪分配。默认情况下，会为以下对象启用通知：[`时区`](server-system-variables.html#sysvar_time_zone), [`自动提交`](server-system-variables.html#sysvar_autocommit), [`字符集客户端`](server-system-variables.html#sysvar_character_set_client), [`字符集结果`](server-system-variables.html#sysvar_character_set_results)和[`字符集连接`](server-system-variables.html#sysvar_character_set_connection)（后三个变量是受[`定名`](set-names.html).)

    特殊价值`*`使服务器跟踪所有会话变量的分配。如果给定，则必须自行指定该值，而不指定特定的系统变量名称。

    要禁用会话变量分配通知，请设置[`会话跟踪系统变量`](server-system-variables.html#sysvar_session_track_system_variables)到空字符串。

    如果启用了会话系统变量跟踪，则即使新值与旧值相同，也会通知所有分配到跟踪的会话变量。

    有关会话状态跟踪的更多信息，请参阅[第5.1.18节，“客户端会话状态的服务器跟踪”](session-state-tracking.html).

-   [](<>) [`会话\u跟踪\u事务\u信息`](server-system-variables.html#sysvar_session_track_transaction_info)

    [](<>)[](<>)

    | 命令行格式 | `--会话跟踪事务信息=值` |
    | ----- | -------------- |
    | 系统变量 | `[session_track_transaction_info]（server system variables.html#sysvar_session_track_transaction_info）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `关` |
    | 有效值 | `关`<br/><br/>`状态`<br/><br/>`特点` |

    控制服务器是否跟踪当前会话中事务的状态和特征，并通知客户端使这些信息可用。这些[`会话\u跟踪\u事务\u信息`](server-system-variables.html#sysvar_session_track_transaction_info)允许使用以下值：

    -   `关`：禁用事务状态跟踪。这是默认设置。

    -   `状态`：启用事务状态跟踪而不跟踪特征。状态跟踪使客户端能够确定事务是否正在进行，以及是否可以在不回滚的情况下将其移动到其他会话。

    -   `特点`：启用事务状态跟踪，包括特征跟踪。特征跟踪使客户端能够确定如何在另一个会话中重新启动事务，使其具有与原始会话中相同的特征。以下特征与此相关：

        ```
        ISOLATION LEVEL
        READ ONLY
        READ WRITE
        WITH CONSISTENT SNAPSHOT
        ```

        为了让客户端安全地将事务重新定位到另一个会话，它不仅必须跟踪事务状态，还必须跟踪事务特征。此外，客户必须跟踪[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)和[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)系统变量以正确确定会话默认值。（要跟踪这些变量，请在[`会话跟踪系统变量`](server-system-variables.html#sysvar_session_track_system_variables)系统变量。）

        有关会话状态跟踪的更多信息，请参阅[第5.1.18节，“客户端会话状态的服务器跟踪”](session-state-tracking.html).

-   [](<>) [`sha256_密码_自动_生成_rsa_密钥`](server-system-variables.html#sysvar_sha256_password_auto_generate_rsa_keys)

    [](<>)[](<>)

    | 命令行格式 | `--sha256密码自动生成rsa密钥[={OFF | ON}]` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[sha256_password_auto_generate_rsa_keys]（server system variables.html#sysvar_sha256_password_auto_generate_rsa_keys）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    服务器使用此变量确定是否在数据目录中自动生成RSA私钥/公钥对文件（如果这些文件尚不存在）。

    在启动时，如果所有这些条件都满足，服务器会自动在数据目录中生成RSA私钥/公钥对文件：[`sha256_密码_自动_生成_rsa_密钥`](server-system-variables.html#sysvar_sha256_password_auto_generate_rsa_keys)或[`缓存\u sha2\u密码\u自动生成\u rsa\u密钥`](server-system-variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys)系统变量已启用；未指定RSA选项；数据目录中缺少RSA文件。这些密钥对文件支持使用RSA在未加密的连接上对通过身份验证的帐户进行安全密码交换`shau密码`或`缓存_sha2_密码`插件；看见[第6.4.1.3节，“SHA-256可插拔认证”](sha256-pluggable-authentication.html)和[第6.4.1.2节，“缓存SHA-2可插拔身份验证”](caching-sha2-pluggable-authentication.html).

    有关RSA文件自动生成的更多信息，包括文件名和特征，请参阅[第6.3.3.1节，“使用MySQL创建SSL和RSA证书及密钥”](creating-ssl-rsa-files-using-mysql.html)

    这个[`自动生成证书`](server-system-variables.html#sysvar_auto_generate_certs)系统变量是相关的，但控制使用SSL安全连接所需的SSL证书和密钥文件的自动生成。

-   [](<>) [`sha256_密码_私钥_路径`](server-system-variables.html#sysvar_sha256_password_private_key_path)

    [](<>)[](<>)

    | 命令行格式 | `--sha256密码私钥路径=文件名` |
    | ----- | -------------------- |
    | 系统变量 | `[sha256_password_private_key_path]（server system variables.html#sysvar_sha256_password_private_key_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `私钥。佩姆` |

    此变量的值是`shau密码`身份验证插件。如果该文件被命名为相对路径，则会相对于服务器数据目录进行解释。该文件必须为PEM格式。

    重要的

    因为这个文件存储了一个私钥，所以它的访问模式应该受到限制，只有MySQL服务器才能读取它。

    有关`shau密码`看见[第6.4.1.3节，“SHA-256可插拔认证”](sha256-pluggable-authentication.html).

-   [](<>) [`sha256_密码_代理_用户`](server-system-variables.html#sysvar_sha256_password_proxy_users)

    [](<>)[](<>)

    | 命令行格式 | `--sha256密码代理用户[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[sha256_password_proxy_users]（server system variables.html#sysvar_sha256_password_proxy_users）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量控制`shau密码`内置的身份验证插件支持代理用户。除非[`检查代理用户`](server-system-variables.html#sysvar_check_proxy_users)系统变量已启用。有关用户代理的信息，请参阅[第6.2.19节“代理用户”](proxy-users.html).

-   [](<>) [`sha256_密码_公钥_路径`](server-system-variables.html#sysvar_sha256_password_public_key_path)

    [](<>)[](<>)

    | 命令行格式 | `--sha256密码公钥路径=文件名` |
    | ----- | -------------------- |
    | 系统变量 | `[sha256_password_public_key_path]（server system variables.html#sysvar_sha256_password_public_key_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `公开密钥。佩姆` |

    此变量的值是`shau密码`身份验证插件。如果该文件被命名为相对路径，则会相对于服务器数据目录进行解释。该文件必须为PEM格式。由于此文件存储公钥，因此可以将副本免费分发给客户端用户。（使用RSA密码加密连接到服务器时显式指定公钥的客户端必须使用与服务器使用的公钥相同的公钥。）

    有关`shau密码`，包括有关客户端如何指定RSA公钥的信息，请参阅[第6.4.1.3节，“SHA-256可插拔认证”](sha256-pluggable-authentication.html).

-   [](<>) [`共享内存`](server-system-variables.html#sysvar_shared_memory)

    [](<>)[](<>)

    | 命令行格式 | `--共享内存[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[shared_memory]（server system variables.html#sysvar_shared_memory）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 特定平台 | 窗户 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    （仅限Windows。）服务器是否允许共享内存连接。

-   [](<>) [`共享的_内存_基础_名称`](server-system-variables.html#sysvar_shared_memory_base_name)

    [](<>)[](<>)

    | 命令行格式 | `--共享内存基名称=名称` |
    | ----- | -------------- |
    | 系统变量 | `[shared_memory_base_name]（server system variables.html#sysvar_shared_memory_base_name）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 特定平台 | 窗户 |
    | 类型 | 一串 |
    | 默认值 | `MYSQL` |

    （仅限Windows。）用于共享内存连接的共享内存的名称。当在一台物理机器上运行多个MySQL实例时，这很有用。默认名称为`MYSQL`.名称区分大小写。

    此变量仅在服务器启动时适用[`共享内存`](server-system-variables.html#sysvar_shared_memory)系统变量已启用，以支持共享内存连接。

-   [](<>) [`显示创建表格跳过辅助引擎`](server-system-variables.html#sysvar_show_create_table_skip_secondary_engine)

    [](<>)[](<>)

    | 命令行格式 | `--显示创建表跳过辅助引擎[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 介绍 | 8.0.18 |
    | 系统变量 | `[show_create_table_skip_secondary_engine]（server system variables.html#sysvar_show_create_table_skip_secondary_engine）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    有可能[`显示创建表格跳过辅助引擎`](server-system-variables.html#sysvar_show_create_table_skip_secondary_engine)导致`辅助发动机`被排除在外的条款[`显示创建表`](show-create-table.html)输出，以及来自[`创建表格`](create-table.html)政府发表的声明[**mysqldump**](mysqldump.html)公用事业

    [**mysqldump**](mysqldump.html)提供[`--显示创建跳过辅助引擎`](mysqldump.html#option_mysqldump_show-create-skip-secondary-engine)选项指定时，它将启用[`显示创建表格跳过辅助引擎`](server-system-variables.html#sysvar_show_create_table_skip_secondary_engine)转储操作持续时间的系统变量。

    尝试[**mysqldump**](mysqldump.html)与[`--显示创建跳过辅助引擎`](mysqldump.html#option_mysqldump_show-create-skip-secondary-engine)MySQL 8.0.18之前不支持[`显示创建表格跳过辅助引擎`](server-system-variables.html#sysvar_show_create_table_skip_secondary_engine)变量导致错误。

    用于热浪。看见[热浪用户指南](https://dev.mysql.com/doc/heatwave/en/).

-   [](<>) [`显示\u创建\u表格\u详细信息`](server-system-variables.html#sysvar_show_create_table_verbosity)

    [](<>)[](<>)

    | 命令行格式 | `--显示创建表的详细信息[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[show_create_table_verbosity]（server system variables.html#sysvar_show_create_table_verbosity）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    [`显示创建表`](show-create-table.html)通常不显示`行格式`如果行格式是默认格式，则为table选项。启用此变量会导致[`显示创建表`](show-create-table.html)展示`行格式`无论它是否为默认格式。

-   [](<>) [`显示旧的临时的`](server-system-variables.html#sysvar_show_old_temporals)

    [](<>)[](<>)

    | 命令行格式 | `--显示旧的时态[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 反对 | 对 |
    | 系统变量 | `[show_old_temporals]（server system variables.html#sysvar_show_old_temporals）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否[`显示创建表`](show-create-table.html)输出包括对5.6.4之前格式的标记时间列的注释([`时间`](time.html), [`约会时间`](datetime.html)和[`时间戳`](datetime.html)不支持分数秒精度的列）。默认情况下禁用此变量。如果启用，[`显示创建表`](show-create-table.html)输出如下所示：

    ```
    CREATE TABLE `mytbl` (
      `ts` timestamp /* 5.5 binary format */ NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `dt` datetime /* 5.5 binary format */ DEFAULT NULL,
      `t` time /* 5.5 binary format */ DEFAULT NULL
    ) DEFAULT CHARSET=utf8mb4
    ```

    输出`列类型`专栏[`信息模式。柱`](information-schema-columns-table.html)表也受到类似的影响。

    此变量已弃用，可能会在将来的MySQL版本中删除。

    从MySQL 8.0.27开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`跳过外部锁定`](server-system-variables.html#sysvar_skip_external_locking)

    [](<>)[](<>)[](<>)[](<>)

    | 命令行格式 | `--跳过外部锁定[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[skip_external_locking]（server system variables.html#sysvar_skip_external_locking）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    这是`关`如果[**mysqld**](mysqld.html)使用外部锁定（系统锁定），`在…上`如果外部锁定被禁用。这只会影响[`米萨姆`](myisam-storage-engine.html)表访问。

    此变量由[`--外部锁定`](server-options.html#option_mysqld_external-locking)或[`--跳过外部锁定`](server-options.html#option_mysqld_external-locking)选项默认情况下禁用外部锁定。

    外部锁定只影响[`米萨姆`](myisam-storage-engine.html)表访问。有关更多信息，包括可以使用和不能使用的条件，请参阅[第8.11.5节“外部锁定”](external-locking.html).

-   [](<>) [`跳过\u名称\u解析`](server-system-variables.html#sysvar_skip_name_resolve)

    [](<>)[](<>)

    | 命令行格式 | `--跳过名称解析[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[skip_name_resolve]（server system variables.html#sysvar_skip_name_resolve）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    检查客户端连接时是否解析主机名。如果这个变量是`关`, [**mysqld**](mysqld.html)检查客户端连接时解析主机名。如果是的话`在…上`, [**mysqld**](mysqld.html)只使用IP号码；在这种情况下，所有`主办`grant表中的列值必须是IP地址。看见[第5.1.12.3节，“DNS查找和主机缓存”](host-cache.html).

    取决于系统的网络配置和`主办`对于您的帐户，客户端可能需要使用显式[`--主人`](connection-options.html#option_general_host)选项，例如[`--主机=127.0.0.1`](connection-options.html#option_general_host)或[`--主机=：：1`](connection-options.html#option_general_host).

    [](<>)

    尝试连接到主机`127.0.0.1`通常会解决`本地服务器`账户但是，如果服务器运行时使用[`跳过\u名称\u解析`](server-system-variables.html#sysvar_skip_name_resolve)启用。如果你打算这样做，请确保存在一个可以接受连接的帐户。例如，能够作为`根`使用[`--主机=127.0.0.1`](connection-options.html#option_general_host)或[`--主机=：：1`](connection-options.html#option_general_host)，创建以下帐户：

    ```
    CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
    CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
    ```

-   [](<>) [`跳过网络`](server-system-variables.html#sysvar_skip_networking)

    [](<>)[](<>)

    | 命令行格式 | `--跳过网络[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[skip_networking]（server system variables.html#sysvar_skip_networking）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量控制服务器是否允许TCP/IP连接。默认情况下，它被禁用（允许TCP连接）。如果启用，服务器只允许本地（非TCP/IP）连接以及与服务器的所有交互[**mysqld**](mysqld.html)必须使用命名管道或共享内存（在Windows上）或Unix套接字文件（在Unix上）创建。对于仅允许本地客户端的系统，强烈建议使用此选项。看见[第5.1.12.3节，“DNS查找和主机缓存”](host-cache.html).

    因为启动服务器时[`--跳过拨款表`](server-options.html#option_mysqld_skip-grant-tables)禁用身份验证检查，在这种情况下，服务器还通过启用[`跳过网络`](server-system-variables.html#sysvar_skip_networking).

-   [](<>) [`跳过显示数据库`](server-system-variables.html#sysvar_skip_show_database)

    [](<>)[](<>)

    | 命令行格式 | `--跳过显示数据库` |
    | ----- | ----------- |
    | 系统变量 | `[skip_show_database]（server system variables.html#sysvar_skip_show_database）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    这会阻止人们使用[`显示数据库`](show-databases.html)如果他们没有[`显示数据库`](privileges-provided.html#priv_show-databases)特权如果您担心用户能够看到属于其他用户的数据库，那么这可以提高安全性。它的效果取决于环境[`显示数据库`](privileges-provided.html#priv_show-databases)特权：如果变量值为`在…上`这个[`显示数据库`](show-databases.html)声明只允许拥有[`显示数据库`](privileges-provided.html#priv_show-databases)特权，该语句将显示所有数据库名称。如果值为`关`, [`显示数据库`](show-databases.html)允许所有用户使用，但仅显示用户拥有[`显示数据库`](privileges-provided.html#priv_show-databases)或其他特权。

    小心

    因为任何静态全局权限都被视为所有数据库的权限，所以任何静态全局权限都允许用户使用[`显示数据库`](show-databases.html)或者通过检查[`图式`](information-schema-schemata-table.html)表格`信息模式`，但因部分撤销而在数据库级别受到限制的数据库除外。

-   [](<>) [`慢启动时间`](server-system-variables.html#sysvar_slow_launch_time)

    [](<>)[](<>)

    | 命令行格式 | `--发射时间慢=#` |
    | ----- | ----------- |
    | 系统变量 | `[slow_launch_time]（server system variables.html#sysvar_slow_launch_time）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2.` |

    如果创建线程所需的时间超过此数秒，服务器将增加[`慢启动线程`](server-status-variables.html#statvar_Slow_launch_threads)状态变量。

-   [](<>) [`慢速查询日志`](server-system-variables.html#sysvar_slow_query_log)

    [](<>)[](<>)

    | 命令行格式 | `--慢速查询日志[={OFF | ON}]` |
    | ----- | ----------------------- |
    | 系统变量 | `[slow_query_log]（server system variables.html#sysvar_slow_query_log）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否启用慢速查询日志。该值可以是0（或`关`)禁用日志或1（或`在…上`)以启用日志。日志输出的目标由[`日志输出`](server-system-variables.html#sysvar_log_output)系统变量；如果该值为`没有一个`，即使启用了日志，也不会写入日志条目。

    “慢”由[`很长时间`](server-system-variables.html#sysvar_long_query_time)变量看见[第5.4.5节，“慢速查询日志”](slow-query-log.html).

-   [](<>) [`慢速查询日志文件`](server-system-variables.html#sysvar_slow_query_log_file)

    [](<>)[](<>)

    | 命令行格式 | `--慢速查询日志文件=文件名` |
    | ----- | ---------------- |
    | 系统变量 | `[slow_query_log_file]（server system variables.html#sysvar_slow_query_log_file）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `主持人：慢。日志` |

    慢速查询日志文件的名称。默认值为`*`主机名`*-慢点。日志`，但初始值可以随`--慢速查询日志文件`选项

-   [](<>) [`插座`](server-system-variables.html#sysvar_socket)

    [](<>)[](<>)

    | 命令行格式 | `--套接字={file_name | pipe_name}` |
    | ----- | ------------------------------- |
    | 系统变量 | `[socket]（server system variables.html#sysvar_socket）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值（Windows） | `MySQL` |
    | 默认值（其他） | `/tmp/mysql。短袜` |

    在Unix平台上，此变量是用于本地客户端连接的套接字文件的名称。默认值是`/tmp/mysql。短袜`（对于某些分发格式，目录可能不同，例如`/var/lib/mysql`用于RPM。）

    在Windows上，此变量是用于本地客户端连接的命名管道的名称。默认值为`MySQL`（不区分大小写）。

-   [](<>) [`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--排序缓冲区大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[sort_buffer_size]（server system variables.html#sysvar_sort_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `262144` |
    | 最小值 | `32768` |
    | 最大值（Windows） | `4294967295` |
    | 最大值（其他64位平台） | `18446744073709551615` |
    | 最大值（其他32位平台） | `4294967295` |

    每个必须执行排序的会话都会分配一个这样大小的缓冲区。[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)不特定于任何存储引擎，并以一般方式应用于优化。至少[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)值必须足够大，以容纳排序缓冲区中的15个元组。此外，增加[`最大排序长度`](server-system-variables.html#sysvar_max_sort_length)可能需要增加[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)。有关更多信息，请参阅[第8.2.1.16节，“按优化排序”](order-by-optimization.html)

    如果你看到很多[`排序\合并\通行证`](server-status-variables.html#statvar_Sort_merge_passes)每秒[`显示全球地位`](show-status.html)输出，可以考虑增加[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)加速的价值`订购人`或`分组`无法通过查询优化或改进索引来改进的操作。

    优化器试图计算出需要多少空间，但可以分配更多空间，直到达到极限。将其全局设置为大于所需值会减慢大多数执行排序的查询的速度。最好将其作为会话设置来增加，并且仅适用于需要更大大小的会话。在Linux上，有256KB和2MB的阈值，其中较大的值可能会显著减慢内存分配，因此您应该考虑保持低于这些值中的一个。尝试为你的工作量找到最佳价值。看见[B.3.3.5节，“MySQL存储临时文件的位置”](temporary-files.html).

    最大允许设置为[`排序缓冲区大小`](server-system-variables.html#sysvar_sort_buffer_size)是4GB−1.64位平台允许使用较大的值（64位窗口除外，对于64位窗口，较大的值被截断为4GB）−1）带有警告）。

-   [](<>) [`sql_auto_为空`](server-system-variables.html#sysvar_sql_auto_is_null)

    [](<>)[](<>)[](<>)[](<>)

    | 系统变量 | `[sql_auto_is_null]（server system variables.html#sysvar_sql_auto_is_null）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果启用此变量，则在成功插入自动生成的`自动增量`值，您可以通过发出以下形式的语句来找到该值：

    ```
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    ```

    如果语句返回一行，则返回的值与调用[`最后插入ID（）`](information-functions.html#function_last-insert-id)作用有关详细信息，包括多行插入后的返回值，请参见[第12.16节“信息功能”](information-functions.html).如果没有`自动增量`值已成功插入，则[`选择`](select.html)语句不返回任何行。

    检索数据的行为`自动增量`通过使用[`是空的`](comparison-operators.html#operator_is-null)一些ODBC程序（如Access）使用比较。看见[获取自动增量值](https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-usagenotes-functionality-last-insert-id.html)。可以通过设置禁用此行为[`sql_auto_为空`](server-system-variables.html#sysvar_sql_auto_is_null)到`关`.

    在MySQL 8.0.16之前`在哪里*`自动调色`*是空的`到`在哪里*`自动调色`*=最后一次插入ID（）`仅在执行语句时执行，因此`sql_auto_为空`在执行过程中，确定查询是否已转换。在MySQL 8.0.16及更高版本中，转换是在语句准备期间执行的。

    的默认值[`sql_auto_为空`](server-system-variables.html#sysvar_sql_auto_is_null)是`关`.

-   [](<>) [`sql_big_选择`](server-system-variables.html#sysvar_sql_big_selects)

    [](<>)[](<>)

    | 系统变量 | `[sql_big_selects]（server system variables.html#sysvar_sql_big_selects）` |
    | ---- | ------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果设置为`关`，MySQL中止[`选择`](select.html)可能需要很长时间才能执行的语句（即优化器估计检查的行数超过[`最大尺寸`](server-system-variables.html#sysvar_max_join_size)).这在不可取的情况下很有用`哪里`声明已经发布。新连接的默认值为`在…上`，它允许所有[`选择`](select.html)声明。

    如果你设定[`最大尺寸`](server-system-variables.html#sysvar_max_join_size)将系统变量设置为除`违约`, [`sql_big_选择`](server-system-variables.html#sysvar_sql_big_selects)即将`关`.

-   [](<>) [`sql\u缓冲区\u结果`](server-system-variables.html#sysvar_sql_buffer_result)

    [](<>)[](<>)

    | 系统变量 | `[sql_buffer_result]（server system variables.html#sysvar_sql_buffer_result）` |
    | ---- | ---------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果启用，[`sql\u缓冲区\u结果`](server-system-variables.html#sysvar_sql_buffer_result)力源于[`选择`](select.html)要放入临时表中的语句。这有助于MySQL尽早释放表锁，并且在需要很长时间才能将结果发送到客户端的情况下非常有用。默认值为`关`.

-   [](<>) [`sql_注销`](server-system-variables.html#sysvar_sql_log_off)

    [](<>)[](<>)

    | 系统变量 | `[sql_log_off]（server system variables.html#sysvar_sql_log_off）` |
    | ---- | ---------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |
    | 有效值 | `关`（启用日志记录）<br/><br/>`在…上`（禁用日志记录） |

    此变量控制当前会话是否禁用常规查询日志记录（假设启用了常规查询日志本身）。默认值为`关`（即，启用日志记录）。要禁用或启用当前会话的常规查询日志记录，请设置会话[`sql_注销`](server-system-variables.html#sysvar_sql_log_off)可变到`在…上`或`关`.

    设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`sql_模式`](server-system-variables.html#sysvar_sql_mode)

    [](<>)[](<>)

    | 命令行格式 | `--sql模式=名称` |
    | ----- | ------------ |
    | 系统变量 | `[sql_mode]（server system variables.html#sysvar_sql_mode）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 设置 |
    | 默认值 | `只有通过严格的转换表进行的完全分组没有日期没有日期错误没有引擎替换` |
    | 有效值 | `允许无效日期`<br/><br/>`ANSI_报价`<br/><br/>`错误_除以_零`<br/><br/>`高优先级`<br/><br/>`忽略_空间`<br/><br/>`零上无自动值`<br/><br/>`没有反斜杠逃脱`<br/><br/>`创建中没有目录`<br/><br/>`没有引擎替换`<br/><br/>`无符号减法`<br/><br/>`没有约会`<br/><br/>`没有零年的约会`<br/><br/>`仅限全组成员`<br/><br/>`PAD_CHAR_至_全长`<br/><br/>`管道`<br/><br/>`真正的_AS_FLOAT`<br/><br/>`严格的所有表格`<br/><br/>`严格的表`<br/><br/>`时间截短分数` |

    当前的服务器SQL模式，可以动态设置。有关详细信息，请参阅[第5.1.11节，“服务器SQL模式”](sql-mode.html).

    笔记

    MySQL安装程序可能会在安装过程中配置SQL模式。

    如果SQL模式与默认模式或预期模式不同，请检查服务器在启动时读取的选项文件中的设置。

-   [](<>) [`sql_注释`](server-system-variables.html#sysvar_sql_notes)

    [](<>)[](<>)

    | 系统变量 | `[sql_notes]（server system variables.html#sysvar_sql_notes）` |
    | ---- | ------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果启用（默认），则诊断`笔记`水平增量`警告!`服务器会记录下来。如果禁用，`笔记`诊断不会增加[`警告!`](server-system-variables.html#sysvar_warning_count)服务器不会记录它们。[**mysqldump**](mysqldump.html)包括禁用此变量的输出，以便重新加载转储文件不会对不影响重新加载操作完整性的事件产生警告。

-   [](<>) [`sql_quote_show_create`](server-system-variables.html#sysvar_sql_quote_show_create)

    [](<>)[](<>)

    | 系统变量 | `[sql_quote_show_create]（server system variables.html#sysvar_sql_quote_show_create）` |
    | ---- | ------------------------------------------------------------------------------------ |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果启用（默认），服务器会引用[`显示创建表`](show-create-table.html)和[`显示创建数据库`](show-create-database.html)声明。如果禁用，则禁用引用。默认情况下启用此选项，以便复制适用于需要引用的标识符。看见[第13.7.7.10节，“显示创建表语句”](show-create-table.html)和[第13.7.7.6节，“显示创建数据库语句”](show-create-database.html).

-   [](<>) [`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)

    [](<>)[](<>)

    | 命令行格式 | `--sql需要主键[={OFF | ON}]` |
    | ----- | ------------------------ |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[sql_require_primary_key]（server system variables.html#sysvar_sql_require_primary_key）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    创建新表或更改现有表结构的语句是否强制要求表具有主键。

    设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

    启用此变量有助于避免表没有主键时基于行的复制中可能出现的性能问题。假设一个表没有主键，而update或delete修改了多行。在复制源服务器上，可以使用单个表扫描来执行此操作，但当使用基于行的复制进行复制时，会对复制副本上要修改的每一行进行表扫描。使用主键时，这些表扫描不会发生。

    [`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)适用于基表和`短暂的`表及其值的更改被复制到副本服务器。从MySQL 8.0.18开始，它只适用于可以参与复制的存储引擎。

    启用时，[`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)有以下影响：

    -   尝试创建没有主键的新表失败，并出现错误。这包括`创建表格。。。喜欢`.它还包括`创建表格。。。选择`，除非`创建表格`第三部分包括主键定义。

    -   尝试从现有表中删除主键失败，并出现错误，但删除主键并在同一表中添加主键的情况除外`改变桌子`声明是允许的。

        即使表中还包含`唯一非空`指数

    -   尝试导入没有主键的表失败，并出现错误。

        这个`需要\u表\u主键\u检查`选择[`将复制源更改为`](change-replication-source-to.html)语句（来自MySQL 8.0.23）或[`将主机更改为`](change-master-to.html)语句（MySQL 8.0.23之前的版本）使副本能够为主键检查选择自己的策略。当选项设置为`在…上`对于复制通道，复制副本始终使用`在…上`对于[`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)复制操作中的系统变量，需要主键。当选项设置为`关`，复制副本始终使用该值`关`对于[`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)复制操作中的系统变量，因此不需要主键，即使源需要主键。当`需要\u表\u主键\u检查`选项设置为`流动`，这是默认值，复制副本使用从源为每个事务复制的任何值。和`流动`设置为`需要\u表\u主键\u检查`选项，如果复制通道正在使用特权检查`权限检查用户`帐户需要足够的权限来设置受限会话变量，以便为[`sql\u需要\u主键`](server-system-variables.html#sysvar_sql_require_primary_key)系统变量。和`在…上`或`关`设置时，帐户不需要这些权限。有关更多信息，请参阅[第17.3.3节，“复制权限检查”](replication-privilege-checks.html).

-   [](<>) [`sql_安全更新`](server-system-variables.html#sysvar_sql_safe_updates)

    [](<>)[](<>)

    | 系统变量 | `[sql_safe_updates]（server system variables.html#sysvar_sql_safe_updates）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果该变量已启用，[`使现代化`](update.html)和[`删去`](delete.html)语句中不使用键的语句`哪里`子句或a`限度`子句产生错误。这样就有可能抓住[`使现代化`](update.html)和[`删去`](delete.html)语句中的键使用不当，可能会更改或删除大量行。默认值为`关`.

    对于[**mysql**](mysql.html)客户[`sql_安全更新`](server-system-variables.html#sysvar_sql_safe_updates)可以通过使用[`--安全更新`](mysql-command-options.html#option_mysql_safe-updates)选项有关更多信息，请参阅[使用安全更新模式（--安全更新）](mysql-tips.html#safe-updates).

-   [](<>) [`sql\u选择\u限制`](server-system-variables.html#sysvar_sql_select_limit)

    [](<>)[](<>)

    | 系统变量 | `[sql_select_limit]（server system variables.html#sysvar_sql_select_limit）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |

    要从中返回的最大行数[`选择`](select.html)声明。有关更多信息，请参阅[使用安全更新模式（--安全更新）](mysql-tips.html#safe-updates).

    新连接的默认值是服务器允许每个表的最大行数。典型的默认值是（2<sup>32</sup>)−1或（2）<sup>64</sup>)−1.如果您更改了限制，可以通过指定值恢复默认值`违约`.

    如果[`选择`](select.html)有一个`限度`条款`限度`优先于[`sql\u选择\u限制`](server-system-variables.html#sysvar_sql_select_limit).

-   [](<>) [`sql_警告`](server-system-variables.html#sysvar_sql_warnings)

    [](<>)[](<>)

    | 系统变量 | `[sql_警告]（服务器系统变量.html#sysvar_sql_警告）` |
    | ---- | -------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此变量控制是否为单行[`插入`](insert.html)如果出现警告，语句将生成一个信息字符串。默认值是`关`.将值设置为`在…上`生成一个信息字符串。

-   [](<>) [`安大略省`](server-system-variables.html#sysvar_ssl_ca)

    [](<>)[](<>)

    | 命令行格式 | `--ssl ca=文件名` |
    | ----- | -------------- |
    | 系统变量 | `[ssl_ca]（server system variables.html#sysvar_ssl_ca）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `无效的` |

    PEM格式的证书颁发机构（CA）证书文件的路径名。该文件包含受信任的SSL证书颁发机构的列表。

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TLS上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`卡帕斯酒店`](server-system-variables.html#sysvar_ssl_capath)

    [](<>)[](<>)

    | 命令行格式 | `--ssl capath=dir_name` |
    | ----- | ----------------------- |
    | 系统变量 | `[ssl_capath]（server system variables.html#sysvar_ssl_capath）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |
    | 默认值 | `无效的` |

    包含PEM格式的受信任SSL证书颁发机构（CA）证书文件的目录的路径名。

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_证书`](server-system-variables.html#sysvar_ssl_cert)

    [](<>)[](<>)

    | 命令行格式 | `--ssl证书=文件名` |
    | ----- | ------------- |
    | 系统变量 | `[ssl_cert]（server system variables.html#sysvar_ssl_cert）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `无效的` |

    PEM格式的服务器SSL公钥证书文件的路径名。

    如果服务器是用[`ssl_证书`](server-system-variables.html#sysvar_ssl_cert)如果设置为使用任何受限密码或密码类别的证书，服务器将在禁用加密连接支持的情况下启动。有关密码限制的信息，请参阅[连接密码配置](encrypted-connection-protocols-ciphers.html#encrypted-connection-cipher-configuration).

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_密码`](server-system-variables.html#sysvar_ssl_cipher)

    [](<>)[](<>)

    | 命令行格式 | `--ssl密码=名称` |
    | ----- | ------------ |
    | 系统变量 | `[ssl_cipher]（server system variables.html#sysvar_ssl_cipher）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `无效的` |

    通过TLSv1使用TLS协议的连接允许的加密密码列表。2.如果列表中不支持密码，则使用这些TLS协议的加密连接不起作用。

    为了实现最大的可移植性，密码列表应该是一个由一个或多个密码名组成的列表，用冒号分隔。以下示例显示了两个用冒号分隔的密码名称：

    ```
    [mysqld]
    ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"
    ```

    OpenSSL支持指定密码的语法，如OpenSSL文档中所述<https://www.openssl.org/docs/manmaster/man1/ciphers.html>.

    有关MySQL支持哪些加密密码的信息，请参阅[第6.3.2节，“加密连接TLS协议和密码”](encrypted-connection-protocols-ciphers.html).

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_crl`](server-system-variables.html#sysvar_ssl_crl)

    [](<>)[](<>)

    | 命令行格式 | `--ssl crl=文件名` |
    | ----- | --------------- |
    | 系统变量 | `[ssl_crl]（server system variables.html#sysvar_ssl_crl）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `无效的` |

    包含PEM格式证书吊销列表的文件的路径名。

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_crlpath`](server-system-variables.html#sysvar_ssl_crlpath)

    [](<>)[](<>)

    | 命令行格式 | `--ssl crlpath=dir_name` |
    | ----- | ------------------------ |
    | 系统变量 | `[ssl_crlpath]（server system variables.html#sysvar_ssl_crlpath）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |
    | 默认值 | `无效的` |

    包含PEM格式的证书吊销列表文件的目录的路径。

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_fips_模式`](server-system-variables.html#sysvar_ssl_fips_mode)

    [](<>)[](<>)

    | 命令行格式 | `--ssl fips模式={OFF | ON | STRICT}` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[ssl_fips_mode]（server system variables.html#sysvar_ssl_fips_mode）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `关` |
    | 有效值 | `关`（或0）<br/><br/>`在…上`（或1）<br/><br/>`严格的`（或2） |

    控制是否在服务器端启用FIPS模式。这个[`ssl_fips_模式`](server-system-variables.html#sysvar_ssl_fips_mode)系统变量不同于其他变量`ssl_*`xxx`*`系统变量，因为它不用于控制服务器是否允许加密连接，而是影响允许哪些加密操作。看见[第6.8节，“FIPS支持”](fips-mode.html).

    这些[`ssl_fips_模式`](server-system-variables.html#sysvar_ssl_fips_mode)允许使用以下值：

    -   `关`（或0）：禁用FIPS模式。

    -   `在…上`（或1）：启用FIPS模式。

    -   `严格的`（或2）：启用“严格”FIPS模式。

    笔记

    如果OpenSSL FIPS对象模块不可用，则[`ssl_fips_模式`](server-system-variables.html#sysvar_ssl_fips_mode)是`关`.在这种情况下，设置[`ssl_fips_模式`](server-system-variables.html#sysvar_ssl_fips_mode)到`在…上`或`严格的`启动时会导致服务器生成错误消息并退出。

-   [](<>) [`ssl_密钥`](server-system-variables.html#sysvar_ssl_key)

    [](<>)[](<>)

    | 命令行格式 | `--ssl密钥=文件名` |
    | ----- | ------------- |
    | 系统变量 | `[ssl_key]（server system variables.html#sysvar_ssl_key）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `无效的` |

    PEM格式的服务器SSL私钥文件的路径名。为了提高安全性，请使用RSA密钥大小至少为2048位的证书。

    如果密钥文件受密码短语保护，服务器会提示用户输入密码短语。密码必须以交互方式给出；它不能存储在文件中。如果密码短语不正确，程序将继续运行，就像无法读取密钥一样。

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

-   [](<>) [`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)

    [](<>)[](<>)

    | 命令行格式 | `--ssl_会话_缓存_模式={ON | OFF}` |
    | ----- | --------------------------- |
    | 介绍 | 8.0.29 |
    | 系统变量 | `[ssl_session_cache_mode]（server system variables.html#sysvar_ssl_session_cache_mode）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |
    | 有效值 | `在…上`<br/><br/>`关` |

    控制是否启用服务器端内存中的会话缓存以及服务器生成会话票证。默认模式为`在…上`（启用会话缓存模式）。对规则的改变[`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)系统变量仅在[`改变实例重新加载TLS`](alter-instance.html#alter-instance-reload-tls)语句已执行，或者在重新启动后（如果变量值已持久化）。

    这些[`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)允许使用以下值：

    -   `在…上`：启用会话缓存模式。

    -   `关`：禁用会话缓存模式。

        如果此系统变量的值为，则服务器不会公布其对会话恢复的支持`关`.在OpenSSL 1.0上运行时。`十、`始终会生成会话票证，但在[`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)已启用。

        有效的当前值[`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)可以用[`Ssl_会话_缓存_模式`](server-status-variables.html#statvar_Ssl_session_cache_mode)状态变量。

-   [](<>) [`ssl_会话_缓存_超时`](server-system-variables.html#sysvar_ssl_session_cache_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--ssl_会话_缓存_超时` |
    | ----- | ---------------- |
    | 介绍 | 8.0.29 |
    | 系统变量 | `[ssl_session_cache_timeout]（server system variables.html#sysvar_ssl_session_cache_timeout）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `300` |
    | 最小值 | `0` |
    | 最大值 | `84600` |

    设置与服务器建立新的加密连接时允许以前的会话重用的时间段，前提是[`ssl_会话_缓存_模式`](server-system-variables.html#sysvar_ssl_session_cache_mode)系统变量已启用，且之前的会话数据可用。如果会话超时过期，则无法再重新使用会话。

    默认值为300秒，最大值为84600（或以秒为单位的一天）。对规则的改变[`ssl_会话_缓存_超时`](server-system-variables.html#sysvar_ssl_session_cache_timeout)系统变量仅在[`改变实例重新加载TLS`](alter-instance.html#alter-instance-reload-tls)语句已执行，或者在重新启动后（如果变量值已持久化）。有效的当前值[`ssl_会话_缓存_超时`](server-system-variables.html#sysvar_ssl_session_cache_timeout)可以用[`Ssl_会话_缓存_超时`](server-status-variables.html#statvar_Ssl_session_cache_timeout)状态变量。

-   [](<>) [`存储程序缓存`](server-system-variables.html#sysvar_stored_program_cache)

    [](<>)[](<>)

    | 命令行格式 | `--存储程序缓存=#` |
    | ----- | ------------ |
    | 系统变量 | `[stored_program_cache]（server system variables.html#sysvar_stored_program_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `256` |
    | 最小值 | `16` |
    | 最大值 | `524288` |

    为每个连接的缓存存储例程数设置软上限。这个变量的值是根据MySQL服务器分别为存储过程和存储函数维护的两个缓存中每个缓存中保存的存储例程的数量来指定的。

    每当执行存储的例程时，在解析例程中的第一个或顶级语句之前，都会检查缓存大小；如果相同类型的例程（正在执行的存储过程或存储函数）的数量超过此变量指定的限制，则会刷新相应的缓存，并释放以前为缓存对象分配的内存。这允许安全地刷新缓存，即使存储的例程之间存在依赖关系。

    存储过程和存储函数缓存与[字典对象缓存](glossary.html#glos_dictionary_object_cache).存储过程和存储函数缓存是每个连接的缓存，而存储程序定义缓存是共享的。存储过程和存储函数缓存中对象的存在与存储程序定义缓存中对象的存在无关，反之亦然。有关更多信息，请参阅[第14.4节，“字典对象缓存”](data-dictionary-object-cache.html).

-   [](<>) [`存储的_程序_定义_缓存`](server-system-variables.html#sysvar_stored_program_definition_cache)

    [](<>)[](<>)

    | 命令行格式 | `--存储程序定义缓存=#` |
    | ----- | -------------- |
    | 系统变量 | `[stored_program_definition_cache]（server system variables.html#sysvar_stored_program_definition_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `256` |
    | 最小值 | `256` |
    | 最大值 | `524288` |

    定义字典对象缓存中可保留的已用和未用存储程序定义对象的数量限制。

    未使用的存储程序定义对象仅在使用的数量小于`存储的_程序_定义_缓存`.

    设置为0表示存储程序定义对象仅在使用时保存在字典对象缓存中。

    存储程序定义缓存分区与使用配置的存储过程和存储函数缓存并行存在[`存储程序缓存`](server-system-variables.html#sysvar_stored_program_cache)选项

    这个[`存储程序缓存`](server-system-variables.html#sysvar_stored_program_cache)选项为每个连接的缓存存储过程或函数的数量设置软上限，并且每次连接执行存储过程或函数时都会检查该限制。另一方面，存储程序定义缓存分区是一个共享缓存，用于存储用于其他目的的存储程序定义对象。存储程序定义缓存分区中对象的存在与存储过程缓存或存储函数缓存中对象的存在无关，反之亦然。

    有关相关信息，请参阅[第14.4节，“字典对象缓存”](data-dictionary-object-cache.html).

-   [](<>) [`超级只读`](server-system-variables.html#sysvar_super_read_only)

    [](<>)[](<>)

    | 命令行格式 | `--超级只读[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[super_read_only]（server system variables.html#sysvar_super_read_only）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    如果[`只读`](server-system-variables.html#sysvar_read_only)启用系统变量后，服务器不允许客户端更新，只有拥有[`连接管理`](privileges-provided.html#priv_connection-admin)特权（或不推荐的[`超级的`](privileges-provided.html#priv_super)特权）。如果[`超级只读`](server-system-variables.html#sysvar_super_read_only)系统变量也被启用，服务器禁止客户端更新，即使用户[`连接管理`](privileges-provided.html#priv_connection-admin)或[`超级的`](privileges-provided.html#priv_super).请参见[`只读`](server-system-variables.html#sysvar_read_only)系统变量，用于描述只读模式以及如何[`只读`](server-system-variables.html#sysvar_read_only)和[`超级只读`](server-system-variables.html#sysvar_super_read_only)互动

    发生以下情况时阻止客户端更新：[`超级只读`](server-system-variables.html#sysvar_super_read_only)启用的操作包括不一定看起来是更新的操作，例如`创建函数`（安装可加载功能），`安装插件`和`安装组件`。这些操作是禁止的，因为它们涉及对`mysql`系统模式。

    类似地，如果启用了事件调度器，则启用[`超级只读`](server-system-variables.html#sysvar_super_read_only)系统变量阻止它更新事件中的“上次执行”时间戳`事件`数据字典表。这会导致事件计划程序在将消息写入服务器错误日志后，在下次尝试执行计划的事件时停止。（在这种情况下[`事件调度程序`](server-system-variables.html#sysvar_event_scheduler)系统变量不会从`在…上`到`关`。这意味着该变量将释放DBA*意图*启用或禁用事件计划程序，其实际启动或停止状态可能不同。）。如果[`超级只读`](server-system-variables.html#sysvar_super_read_only)在启用后，服务器会根据需要自动重新启动事件调度器，从MySQL 8.0.26开始。在MySQL 8.0.26之前，需要通过再次启用事件调度器来手动重新启动它。

    改变[`超级只读`](server-system-variables.html#sysvar_super_read_only)在复制源服务器上，数据不会复制到副本服务器。可以在副本上设置该值，而不依赖于源上的设置。

-   [](<>) [`系统事件日志。设施`](server-system-variables.html#sysvar_syseventlog.facility)

    [](<>)[](<>)

    | 命令行格式 | `--系统事件日志。设施=价值` |
    | ----- | ---------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[syseventlog.facility]（server system variables.html#sysvar_syseventlog.facility）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `守护进程` |

    用于将错误日志输出写入`系统日志`（发送消息的程序类型）。除非`日志\接收器\系统事件日志`已安装错误日志组件。看见[第5.4.2.8节，“错误记录到系统日志”](error-log-syslog.html).

    每个操作系统的允许值可能不同；咨询你的系统`系统日志`文档

    Windows上不存在此变量。

-   [](<>) [`系统事件日志。包括`](server-system-variables.html#sysvar_syseventlog.include_pid)

    [](<>)[](<>)

    | 命令行格式 | `--系统事件日志。包括pid[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[syseventlog.include_pid]（server system variables.html#sysvar_syseventlog.include_pid）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    是否在写入的每行错误日志输出中包含服务器进程ID`系统日志`。除非`日志\接收器\系统事件日志`已安装错误日志组件。看见[第5.4.2.8节，“错误记录到系统日志”](error-log-syslog.html).

    Windows上不存在此变量。

-   [](<>) [`系统事件日志。标签`](server-system-variables.html#sysvar_syseventlog.tag)

    [](<>)[](<>)

    | 命令行格式 | `--系统事件日志。标签=标签` |
    | ----- | ---------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[syseventlog.tag]（server system variables.html#sysvar_syseventlog.tag）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `空字符串` |

    要在写入的错误日志输出中添加到服务器标识符的标记`系统日志`或Windows事件日志。除非`日志\接收器\系统事件日志`已安装错误日志组件。看见[第5.4.2.8节，“错误记录到系统日志”](error-log-syslog.html).

    默认情况下，没有设置任何标记，因此服务器标识符只是`MySQL`在窗户上，以及`mysqld`在其他平台上。如果标记值为*`标签`*如果指定，则会使用前导连字符将其附加到服务器标识符，从而生成`系统日志`标识符`mysqld-*`标签`*`（或`MySQL-*`标签`*`在Windows上）。

    在Windows上，要使用不存在的标记，服务器必须从具有管理员权限的帐户运行，以允许为标记创建注册表项。如果标签已经存在，则不需要提升权限。

-   [](<>) [`系统时区`](server-system-variables.html#sysvar_system_time_zone)

    [](<>)[](<>)

    | 系统变量 | `[system_time_zone]（server system variables.html#sysvar_system_time_zone）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    服务器系统时区。当服务器开始执行时，它会从机器默认值继承时区设置，可能会被用于运行服务器或启动脚本的帐户的环境修改。该值用于设置[`系统时区`](server-system-variables.html#sysvar_system_time_zone)。要明确指定系统时区，请设置`TZ`环境变量或使用[`--时区`](mysqld-safe.html#option_mysqld_safe_timezone)选择[**mysqld\_安全**](mysqld-safe.html)剧本

    从MySQL 8.0.26开始，除了启动时间初始化外，如果服务器主机时区发生变化（例如，由于夏令时），[`系统时区`](server-system-variables.html#sysvar_system_time_zone)反映了这种变化，这对应用程序有以下影响：

    -   查询该引用[`系统时区`](server-system-variables.html#sysvar_system_time_zone)将在夏令时更改前获取一个值，在更改后获取另一个值。

    -   对于在夏时制更改之前开始执行并在更改之后结束的查询[`系统时区`](server-system-variables.html#sysvar_system_time_zone)在查询中保持不变，因为值通常在执行开始时缓存。

        这个[`系统时区`](server-system-variables.html#sysvar_system_time_zone)变量与[`时区`](server-system-variables.html#sysvar_time_zone)变量虽然它们可能具有相同的值，但后一个变量用于初始化每个连接的客户端的时区。看见[第5.1.15节，“MySQL服务器时区支持”](time-zone-support.html).

-   [](<>) [`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--表定义缓存=#` |
    | ----- | ----------- |
    | 系统变量 | `[table_definition_cache]（server system variables.html#sysvar_table_definition_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1`（表示自动调整大小；不指定此文字值） |
    | 最小值 | `400` |
    | 最大值 | `524288` |

    可存储在表定义缓存中的表定义数。如果使用大量表，可以创建大型表定义缓存以加快表的打开速度。与普通的表缓存不同，表定义缓存占用更少的空间，并且不使用文件描述符。最小值为400。默认值基于以下公式，上限为2000：

    ```
    MIN(400 + table_open_cache / 2, 2000)
    ```

    对于[`InnoDB`](innodb-storage-engine.html)这个[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)对于字典对象缓存中的表实例数和一次可以打开的每个表的文件表空间数，该设置起到了软限制的作用。

    如果字典对象缓存中的表实例数超过[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)限制，LRU机制开始标记要逐出的表实例，并最终将它们从字典对象缓存中删除。具有缓存元数据的打开表的数量可以高于[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)由于具有外键关系的表实例（不在LRU列表中）而受到限制。

    一次可以打开的每表文件表空间的数量受[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)和[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)设置。如果两个变量都已设置，则使用最高设置。如果两个变量都未设置，则[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)使用具有更高默认值的设置。如果打开的表空间数量超过[`表_定义_缓存`](server-system-variables.html#sysvar_table_definition_cache)或[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)，LRU机制在LRU列表中搜索完全刷新且当前未扩展的表空间文件。每次打开新表空间时都会执行此过程。只关闭非活动表空间。

    表定义缓存与[字典对象缓存](glossary.html#glos_dictionary_object_cache).两个缓存都存储表定义，但服务于MySQL服务器的不同部分。一个缓存中的对象不依赖于另一个缓存中对象的存在。有关更多信息，请参阅[第14.4节，“字典对象缓存”](data-dictionary-object-cache.html).

-   [](<>) [`表_加密_权限_检查`](server-system-variables.html#sysvar_table_encryption_privilege_check)

    [](<>)[](<>)

    | 命令行格式 | `--表加密权限检查[={OFF | ON}]` |
    | ----- | ------------------------ |
    | 介绍 | 8.0.16 |
    | 系统变量 | `[table_encryption_privilege_check]（server system variables.html#sysvar_table_encryption_privilege_check）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    控制[`表_加密_管理`](privileges-provided.html#priv_table-encryption-admin)使用不同于[`默认\u表\u加密`](server-system-variables.html#sysvar_default_table_encryption)设置，或使用不同于默认模式加密的加密设置创建或更改表时。默认情况下，该检查处于禁用状态。

    背景[`表_加密_权限_检查`](server-system-variables.html#sysvar_table_encryption_privilege_check)在运行时需要[`超级的`](privileges-provided.html#priv_super)特权

    [`表_加密_权限_检查`](server-system-variables.html#sysvar_table_encryption_privilege_check)支持[`设定持续时间`](set-variable.html)和[`仅设置为0`](set-variable.html)语法。看见[第5.1.9.3节，“持久化系统变量”](persisted-system-variables.html).

    有关更多信息，请参阅[为模式和常规表空间定义加密默认值](innodb-data-encryption.html#innodb-schema-tablespace-encryption-default).

-   [](<>) [`表_打开_缓存`](server-system-variables.html#sysvar_table_open_cache)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--表开放缓存=#` |
    | ----- | ----------- |
    | 系统变量 | `[table_open_cache]（server system variables.html#sysvar_table_open_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4000` |
    | 最小值 | `1.` |
    | 最大值 | `524288` |

    所有线程的打开表数。增加此值会增加[**mysqld**](mysqld.html)要求。该变量的有效值为[`打开\u文件\u限制`](server-system-variables.html#sysvar_open_files_limit)`- 10 -`有效价值[`max_连接`](server-system-variables.html#sysvar_max_connections)`/ 2`，和400；就是

    ```
    MAX(
        open_files_limit - 10 - (max_connections / 2),
        400
       )
    ```

    您可以通过检查[`打开桌子`](server-status-variables.html#statvar_Opened_tables)状态变量。如果[`打开桌子`](server-status-variables.html#statvar_Opened_tables)是大的，你不用[`冲水桌`](flush.html#flush-tables)通常（这只是强制关闭和重新打开所有表），然后应该增加[`表_打开_缓存`](server-system-variables.html#sysvar_table_open_cache)变量有关表缓存的更多信息，请参阅[第8.4.3.1节，“MySQL如何打开和关闭表”](table-cache.html).

-   [](<>) [`表_打开_缓存_实例`](server-system-variables.html#sysvar_table_open_cache_instances)

    [](<>)[](<>)

    | 命令行格式 | `--表打开缓存实例=#` |
    | ----- | ------------- |
    | 系统变量 | `[table_open_cache_instances]（server system variables.html#sysvar_table_open_cache_instances）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `16` |
    | 最小值 | `1.` |
    | 最大值 | `64` |

    打开的表缓存实例数。为了通过减少会话之间的争用来提高可伸缩性，可以将开放表缓存划分为几个大小较小的缓存实例[`表_打开_缓存`](server-system-variables.html#sysvar_table_open_cache) / [`表_打开_缓存_实例`](server-system-variables.html#sysvar_table_open_cache_instances).会话只需锁定一个实例即可访问DML语句。这将在实例之间分割缓存访问，允许在有许多会话访问表时使用缓存的操作具有更高的性能。（DDL语句仍然需要对整个缓存进行锁定，但这种语句的频率远低于DML语句。）

    对于通常使用16个或更多内核的系统，建议值为8或16。

-   [](<>) [`表空间\定义\缓存`](server-system-variables.html#sysvar_tablespace_definition_cache)

    [](<>)[](<>)

    | 命令行格式 | `--表空间定义缓存=#` |
    | ----- | ------------- |
    | 系统变量 | `[tablespace_definition_cache]（server system variables.html#sysvar_tablespace_definition_cache）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `256` |
    | 最小值 | `256` |
    | 最大值 | `524288` |

    定义字典对象缓存中可保留的表空间定义对象（已使用和未使用）的数量限制。

    未使用的表空间定义对象仅在使用的数量小于`表空间\定义\缓存`.

    一套`0`这意味着表空间定义对象仅在使用时保存在dictionary对象缓存中。

    有关更多信息，请参阅[第14.4节，“字典对象缓存”](data-dictionary-object-cache.html).

-   [](<>) [`诱人的_max_mmap`](server-system-variables.html#sysvar_temptable_max_mmap)

    [](<>)[](<>)

    | 命令行格式 | `--诱人的最大mmap=#` |
    | ----- | --------------- |
    | 介绍 | 8.0.23 |
    | 系统变量 | `[entitable_max_mmap]（server system variables.html#sysvar_entitable_max_mmap）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1073741824` |
    | 最小值 | `0` |
    | 最大值 | `2^64-1` |

    定义可诱惑存储引擎在开始将数据存储到内存之前允许从内存映射的临时文件分配的最大内存量（字节）`InnoDB`磁盘上的内部临时表。设置为0将禁用从内存映射的临时文件分配内存。有关更多信息，请参阅[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

-   [](<>) [`诱人的_max_ram`](server-system-variables.html#sysvar_temptable_max_ram)

    [](<>)[](<>)

    | 命令行格式 | `--诱人的最大公羊=#` |
    | ----- | ------------- |
    | 系统变量 | `[entitable_max_ram]（server system variables.html#sysvar_entitable_max_ram）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1073741824` |
    | 最小值 | `2097152` |
    | 最大值 | `2^64-1` |

    定义服务器可以占用的最大内存量`诱人的`存储引擎在开始将数据存储到磁盘之前。默认值为1073741824字节（1GiB）。有关更多信息，请参阅[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

-   [](<>) [`诱人的_使用_mmap`](server-system-variables.html#sysvar_temptable_use_mmap)

    [](<>)[](<>)

    | 命令行格式 | `--诱人的使用mmap[={OFF | ON}]` |
    | ----- | -------------------------- |
    | 介绍 | 8.0.16 |
    | 反对 | 8.0.26 |
    | 系统变量 | `[entitable_use_mmap]（server system variables.html#sysvar_entitable_use_mmap）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    定义当可诱惑存储引擎占用的内存量超过[`诱人的_max_ram`](server-system-variables.html#sysvar_temptable_max_ram)变量什么时候[`诱人的_使用_mmap`](server-system-variables.html#sysvar_temptable_use_mmap)禁用后，诱惑存储引擎将使用`InnoDB`而不是磁盘上的内部临时表。有关更多信息，请参阅[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

-   [](<>) [`线程缓存大小`](server-system-variables.html#sysvar_thread_cache_size)

    [](<>)[](<>)

    | 命令行格式 | `--线程缓存大小=#` |
    | ----- | ------------ |
    | 系统变量 | `[thread_cache_size]（server system variables.html#sysvar_thread_cache_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1`（表示自动调整大小；不指定此文字值） |
    | 最小值 | `0` |
    | 最大值 | `16384` |

    服务器应该缓存多少线程以供重用。当客户端断开连接时，如果客户端的线程少于[`线程缓存大小`](server-system-variables.html#sysvar_thread_cache_size)在那里。如果可能，通过重用从缓存中获取的线程来满足对线程的请求，并且只有当缓存为空时，才会创建一个新线程。如果有很多新连接，可以增加此变量以提高性能。通常，如果你有一个好的线程实现，这并不能提供显著的性能改进。但是，如果服务器每秒看到数百个连接，通常应该设置[`线程缓存大小`](server-system-variables.html#sysvar_thread_cache_size)足够高，以便大多数新连接使用缓存线程。通过检查[`连接`](server-status-variables.html#statvar_Connections)和[`创建的线程`](server-status-variables.html#statvar_Threads_created)状态变量，可以看到线程缓存的效率。有关详细信息，请参阅[第5.1.10节，“服务器状态变量”](server-status-variables.html).

    默认值基于以下公式，上限为100：

    ```
    8 + (max_connections / 100)
    ```

-   [](<>) [`线程处理`](server-system-variables.html#sysvar_thread_handling)

    [](<>)[](<>)

    | 命令行格式 | `--线程处理=名称` |
    | ----- | ----------- |
    | 系统变量 | `[thread_handling]（server system variables.html#sysvar_thread_handling）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `每个连接一个线程` |
    | 有效值 | `没有线索`<br/><br/>`每个连接一个线程`<br/><br/>`动态加载` |

    服务器用于连接线程的线程处理模型。允许值为`没有线索`（服务器使用单个线程处理一个连接），`每个连接一个线程`（服务器使用一个线程来处理每个客户端连接），以及`动态加载`（由线程池插件初始化时设置）。`没有线索`用于在Linux下调试；看见[第5.9节，“调试MySQL”](debugging-mysql.html).

-   [](<>) [`线程池算法`](server-system-variables.html#sysvar_thread_pool_algorithm)

    [](<>)[](<>)

    | 命令行格式 | `--线程池算法=#` |
    | ----- | ----------- |
    | 系统变量 | `[thread_pool_algorithm]（server system variables.html#sysvar_thread_pool_algorithm）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `1.` |

    此变量控制线程池插件使用的算法：

    -   值为0（默认值）使用保守的低并发算法，该算法经过了最充分的测试，并且已知可以产生非常好的结果。

    -   值为1会增加并发性，并使用更激进的算法，该算法有时在最佳线程数上的性能会提高5–10%，但随着连接数的增加，性能会降低。它的使用应被视为实验性的，不受支持。

        仅当线程池插件已启用时，此变量才可用。看见[第5.6.3节，“MySQL企业线程池”](thread-pool.html).

-   [](<>) [`线程池高优先级连接`](server-system-variables.html#sysvar_thread_pool_high_priority_connection)

    [](<>)[](<>)

    | 命令行格式 | `--线程池高优先级连接=#` |
    | ----- | --------------- |
    | 系统变量 | `[thread_pool_high_priority_connection]（server system variables.html#sysvar_thread_pool_high_priority_connection）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `1.` |

    此变量影响执行前新语句的排队。如果该值为0（默认值为false），则语句队列同时使用低优先级队列和高优先级队列。如果该值为1（true），排队语句总是转到高优先级队列。

    仅当线程池插件已启用时，此变量才可用。看见[第5.6.3节，“MySQL企业线程池”](thread-pool.html).

-   [](<>) [`线程\u池\u最大\u活动\u查询\u线程`](server-system-variables.html#sysvar_thread_pool_max_active_query_threads)

    [](<>)[](<>)

    | 命令行格式 | `--线程池最大活动查询线程数` |
    | ----- | ---------------- |
    | 介绍 | 8.0.19 |
    | 系统变量 | `[thread_pool_max_active_query_threads]（server system variables.html#sysvar_thread_pool_max_active_query_threads）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `512` |

    每个组允许的最大活动（运行）查询线程数。如果该值为0，线程池插件将使用尽可能多的可用线程。

    仅当线程池插件已启用时，此变量才可用。看见[第5.6.3节，“MySQL企业线程池”](thread-pool.html).

-   [](<>) [`线程\u池\u最大\u未使用的\u线程`](server-system-variables.html#sysvar_thread_pool_max_unused_threads)

    [](<>)[](<>)

    | 命令行格式 | `--线程池最大未使用线程数=#` |
    | ----- | ----------------- |
    | 系统变量 | `[thread_pool_max_unused_threads]（server system variables.html#sysvar_thread_pool_max_unused_threads）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4096` |

    线程池中允许的最大未使用线程数。这个变量可以限制休眠线程使用的内存量。

    值为0（默认值）意味着睡眠线程的数量没有限制。价值*`N`*哪里*`ñ`*大于 0 表示 1 个消费者线程，并且*`ñ`*-1 保留线程。在这种情况下，如果一个线程准备好休眠，但休眠线程的数量已经达到最大值，则该线程退出而不是进入休眠状态。

    休眠线程要么作为消费者线程休眠，要么作为保留线程休眠。线程池允许一个线程在休眠时成为消费者线程。如果一个线程进入休眠状态并且没有现有的消费者线程，它会作为消费者线程休眠。当必须唤醒一个线程时，如果有一个消费者线程，则选择一个消费者线程。仅当没有消费者线程唤醒时才会选择保留线程。

    此变量仅在启用线程池插件时可用。看[第 5.6.3 节，“MySQL 企业线程池”](thread-pool.html).

-   [](<>) [`thread_pool_prio_kickup_timer`](server-system-variables.html#sysvar_thread_pool_prio_kickup_timer)

    [](<>)[](<>)

    | 命令行格式 | `--thread-pool-prio-kickup-timer=#` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[thread_pool_prio_kickup_timer]（服务器系统变量.html#sysvar_thread_pool_prio_kickup_timer）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1000` |
    | 最小值 | `0` |
    | 最大值 | `4294967294` |

    此变量影响在低优先级队列中等待执行的语句。该值是等待语句移动到高优先级队列之前的毫秒数。默认值为 1000（1 秒）。

    此变量仅在启用线程池插件时可用。看[第 5.6.3 节，“MySQL 企业线程池”](thread-pool.html).

-   [](<>) [`线程池大小`](server-system-variables.html#sysvar_thread_pool_size)

    [](<>)[](<>)

    | 命令行格式 | `--线程池大小=#` |
    | ----- | ----------- |
    | 系统变量 | `[thread_pool_size]（服务器系统变量.html#sysvar_thread_pool_size）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `16` |
    | 最小值 | `1` |
    | 最大值（≥ 8.0.19） | `512` |
    | 最大值 (≤ 8.0.18) | `64` |

    线程池中的线程组数。这是控制线程池性能的最重要参数。它影响可以同时执行的语句数。如果指定了允许值范围之外的值，则不会加载线程池插件，并且服务器会将消息写入错误日志。

    此变量仅在启用线程池插件时可用。看[第 5.6.3 节，“MySQL 企业线程池”](thread-pool.html).

-   [](<>) [`thread_pool_stall_limit`](server-system-variables.html#sysvar_thread_pool_stall_limit)

    [](<>)[](<>)

    | 命令行格式 | `--thread-pool-stall-limit=#` |
    | ----- | ----------------------------- |
    | 系统变量 | `[thread_pool_stall_limit]（服务器系统变量.html#sysvar_thread_pool_stall_limit）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `6` |
    | 最小值 | `4` |
    | 最大值 | `600` |

    此变量影响执行语句。该值是一条语句在开始执行之后在它被定义为停止之前必须完成的时间量，此时线程池允许线程组开始执行另一条语句。该值以 10 毫秒为单位，因此默认值 6 表示 60 毫秒。短等待值允许线程更快地启动。短值也更适合避免死锁情况。长等待值对于包含长时间运行语句的工作负载很有用，以避免在当前语句执行时启动太多新语句。

    此变量仅在启用线程池插件时可用。看[第 5.6.3 节，“MySQL 企业线程池”](thread-pool.html).

-   [](<>) [`线程堆栈`](server-system-variables.html#sysvar_thread_stack)

    [](<>)[](<>)

    | 命令行格式 | `--线程堆栈=#` |
    | ----- | ---------- |
    | 系统变量 | `[thread_stack]（服务器系统变量.html#sysvar_thread_stack）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（64位平台，≥ 8.0.27) | `1048576` |
    | 默认值（64位平台，≤ 8.0.26) | `286720` |
    | 默认值（32位平台，≥ 8.0.27) | `1048576` |
    | 默认值（32位平台，≤ 8.0.26) | `221184` |
    | 最小值 | `131072` |
    | 最大值（64位平台） | `18446744073709550592` |
    | 最大值（32位平台） | `4294966272` |
    | 块大小 | `1024` |

    每个线程的堆栈大小。默认值足够大，可以正常运行。如果线程堆栈大小太小，则会限制服务器可以处理的SQL语句的复杂性、存储过程的递归深度以及其他占用内存的操作。

    块大小为1024。在存储系统变量的值之前，MySQL服务器会将不是块大小的精确倍数的值向下舍入到块大小的下一个较低倍数。解析器允许平台的最大无符号整数值（4294967295或2）<sup>32</sup>−1对于32位系统，18446744073709551615或2<sup>64</sup>−1（对于64位系统），但实际最大值比块大小小。

-   [](<>) [`时区`](server-system-variables.html#sysvar_time_zone)

    [](<>)[](<>)

    | 系统变量 | `[时区]（server system variables.html#sysvar_time_zone）` |
    | ---- | ----------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用(≥ 8.0.17) | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用(≤ 8.0.16) | 不 |
    | 类型 | 一串 |
    | 默认值 | `系统` |
    | 最小值(≥ 8.0.19) | `-13:59` |
    | 最小值(≤ 8.0.18) | `-12:59` |
    | 最大值(≥ 8.0.19) | `+14:00` |
    | 最大值(≤ 8.0.18) | `+13:00` |

    当前时区。此变量用于初始化连接的每个客户端的时区。默认情况下，其初始值为`“系统”`（也就是说，“使用[`系统时区`](server-system-variables.html#sysvar_system_time_zone)”). 可以在服务器启动时使用[`--默认时区`](server-options.html#option_mysqld_default-time-zone)选项看见[第5.1.15节，“MySQL服务器时区支持”](time-zone-support.html).

    笔记

    如果设置为`系统`，每个需要进行时区计算的MySQL函数调用都会进行系统库调用，以确定当前的系统时区。此调用可能受到全局互斥锁的保护，从而导致争用。

-   [](<>) [`时间戳`](server-system-variables.html#sysvar_timestamp)

    [](<>)[](<>)

    | 系统变量 | `[timestamp]（server system variables.html#sysvar_timestamp）` |
    | ---- | ------------------------------------------------------------ |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 数字的 |
    | 默认值 | `UNIX_时间戳（）` |
    | 最小值 | `1.` |
    | 最大值 | `2147483647` |

    设置此客户端的时间。如果您使用二进制日志还原行，则可使用此命令获取原始时间戳。*`时间戳_值`*应该是Unix历元时间戳（类似于[`UNIX_时间戳（）`](date-and-time-functions.html#function_unix-timestamp)，而不是`'*`YYYY-MM-DD hh:mm:ss`*'`格式）或`违约`.

    背景[`时间戳`](server-system-variables.html#sysvar_timestamp)设置为常量会使其保留该值，直到再次更改为止。背景[`时间戳`](server-system-variables.html#sysvar_timestamp)到`违约`使其值为访问时的当前日期和时间。

    [`时间戳`](server-system-variables.html#sysvar_timestamp)是一个`双重的`而不是`比金`因为它的值包括微秒部分。最大值对应于`'2038-01-19 03:14:07'`UTC，与[`时间戳`](datetime.html)数据类型。

    `设置时间戳`影响返回的值[`现在（）`](date-and-time-functions.html#function_now)但不是通过[`SYSDATE（）`](date-and-time-functions.html#function_sysdate)这意味着二进制日志中的时间戳设置对调用[`SYSDATE（）`](date-and-time-functions.html#function_sysdate)。服务器可以通过[`--sysdate现在是`](server-options.html#option_mysqld_sysdate-is-now)选择导致[`SYSDATE（）`](date-and-time-functions.html#function_sysdate)成为…的同义词[`现在（）`](date-and-time-functions.html#function_now)，在这种情况下`设置时间戳`影响两种功能。

-   [](<>) [`tls_密码套件`](server-system-variables.html#sysvar_tls_ciphersuites)

    [](<>)[](<>)

    | 命令行格式 | `--tls ciphersuite=ciphersuite\u列表` |
    | ----- | ----------------------------------- |
    | 介绍 | 8.0.16 |
    | 系统变量 | `[tls_ciphersuites]（server system variables.html#sysvar_tls_ciphersuites）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `无效的` |

    服务器允许哪些密码套件用于使用TLSv1的加密连接。3.该值是零个或多个以冒号分隔的密码套件名称的列表。

    可以为此变量命名的密码套件取决于用于编译MySQL的SSL库。如果未设置此变量，则其默认值为`无效的`，这意味着服务器允许默认的一组密码套件。如果变量设置为空字符串，则不会启用密码套件，也无法建立加密连接。有关更多信息，请参阅[第6.3.2节，“加密连接TLS协议和密码”](encrypted-connection-protocols-ciphers.html).

-   [](<>) [`tls_版本`](server-system-variables.html#sysvar_tls_version)

    [](<>)[](<>)

    | 命令行格式 | `--tls版本=协议列表` |
    | ----- | -------------- |
    | 系统变量 | `[tls_version]（server system variables.html#sysvar_tls_version）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.16) | 对 |
    | 动态的(≤ 8.0.15) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值(≥ 8.0.28) | `TLSv1。2、TLSv1。3.` |
    | 默认值(≥ 8.0.16, ≤ 8.0.27) | `TLSv1，TLSv1。1，TLSv1。2、TLSv1。3.` |
    | 默认值(≤ 8.0.15) | `TLSv1，TLSv1。1，TLSv1。2.` |

    服务器允许哪些协议进行加密连接。该值是一个由一个或多个逗号分隔的协议名称组成的列表，这些名称不区分大小写。可以为此变量命名的协议取决于用于编译MySQL的SSL库。应选择允许的协议，例如不在列表中留下“漏洞”。有关详细信息，请参阅[第6.3.2节，“加密连接TLS协议和密码”](encrypted-connection-protocols-ciphers.html).

    从MySQL 8.0.16开始，这个变量是动态的，可以在运行时修改，以影响服务器用于新连接的TSL上下文。看见[服务器端运行时配置和监控加密连接](using-encrypted-connections.html#using-encrypted-connections-server-side-runtime-configuration).在MySQL 8.0.16之前，此变量只能在服务器启动时设置。

    重要的

    -   对TLSv1和TLSv1的支持。1从MySQL 8.0.28开始，连接协议从MySQL服务器上删除。MySQL 8.0.26不推荐使用这些协议。看见[拆除TLSv1和TLSv1的支架。1.协议](encrypted-connection-protocols-ciphers.html#encrypted-connection-deprecated-protocols)了解更多信息。

    -   对TLSv1的支持。3协议在MySQL 8.0.16之后的MySQL服务器中可用，前提是MySQL服务器是使用OpenSSL 1.1.1或更高版本编译的。服务器在启动时检查OpenSSL的版本，如果低于1.1.1，则检查TLSv1。3从系统变量的默认值中删除。在这种情况下，默认值为“`TLSv1，TLSv1。1，TLSv1。2.`“MySQL 8.0.27之前及以后，以及”`TLSv1。2.`“来自MySQL 8.0.28。

-   [](<>) [`tmp_表_尺寸`](server-system-variables.html#sysvar_tmp_table_size)

    [](<>)[](<>)

    | 命令行格式 | `--tmp表格大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[tmp_table_size]（server system variables.html#sysvar_tmp_table_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 整数 |
    | 默认值 | `16777216` |
    | 最小值 | `1024` |
    | 最大值 | `18446744073709551615` |

    定义由创建的内存中内部临时表的最大大小`记忆力`存储引擎，并且从MySQL 8.0.28开始`诱人的`存储引擎。如果内存中的内部临时表超过此大小，它将自动转换为磁盘上的内部临时表。

    这个[`tmp_表_尺寸`](server-system-variables.html#sysvar_tmp_table_size)变量不适用于用户创建的`记忆力`桌子。用户创建`诱人的`不支持表格。

    当使用`记忆力`存储引擎对于内存中的内部临时表，实际大小限制为[`tmp_表_尺寸`](server-system-variables.html#sysvar_tmp_table_size)和[`最大堆大小表大小`](server-system-variables.html#sysvar_max_heap_table_size)这个[`最大堆大小表大小`](server-system-variables.html#sysvar_max_heap_table_size)设置不适用于`诱人的`桌子。

    增加价值[`tmp_表_尺寸`](server-system-variables.html#sysvar_tmp_table_size)（及[`最大堆大小表大小`](server-system-variables.html#sysvar_max_heap_table_size)如有必要，在使用`记忆力`存储引擎（用于内存中的内部临时表）如果执行了许多高级操作`分组`查询，你有很多记忆。

    您可以将创建的内部磁盘上临时表的数量与通过比较创建的内部临时表的总数进行比较[`创建了_tmp_disk_表`](server-status-variables.html#statvar_Created_tmp_disk_tables)和[`创建了_tmp_表`](server-status-variables.html#statvar_Created_tmp_tables)价值观

    另见[第8.4.4节，“MySQL中的内部临时表使用”](internal-temporary-tables.html).

-   [](<>) [`tmpdir`](server-system-variables.html#sysvar_tmpdir)

    [](<>)[](<>)

    | 命令行格式 | `--tmpdir=dir_name` |
    | ----- | ------------------- |
    | 系统变量 | `[tmpdir]（server system variables.html#sysvar_tmpdir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    用于创建临时文件的目录的路径。如果您的默认设置`/tmp`目录所在的分区太小，无法容纳临时表。可以将此变量设置为以循环方式使用的多条路径的列表。路径应以冒号字符分隔(`:`)关于Unix和分号字符(`;`)在窗户上。

    [`tmpdir`](server-system-variables.html#sysvar_tmpdir)可以是非永久性位置，例如基于内存的文件系统上的目录或服务器主机重新启动时清除的目录。如果MySQL服务器充当副本，而您使用的是一个非永久性位置[`tmpdir`](server-system-variables.html#sysvar_tmpdir)请考虑使用副本设置副本的临时目录。[`副本加载tmpdir`](replication-options-replica.html#sysvar_replica_load_tmpdir)或[`从机负载tmpdir`](replication-options-replica.html#sysvar_slave_load_tmpdir)变量对于复制副本，用于复制的临时文件[`加载数据`](load-data.html)语句存储在这个目录中，因此使用一个永久位置，它们可以在机器重新启动后存活，不过如果临时文件已被删除，则在重新启动后复制现在可以继续。

    有关临时文件存储位置的详细信息，请参阅[B.3.3.5节，“MySQL存储临时文件的位置”](temporary-files.html).

-   [](<>) [`事务分配块大小`](server-system-variables.html#sysvar_transaction_alloc_block_size)

    [](<>)[](<>)

    | 命令行格式 | `--事务分配块大小=#` |
    | ----- | ------------- |
    | 系统变量 | `[transaction_alloc_block_size]（server system variables.html#sysvar_transaction_alloc_block_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8192` |
    | 最小值 | `1024` |
    | 最大值 | `131072` |
    | 块大小 | `1024` |

    需要内存的每个事务内存池增加的字节数。请参阅的描述[`事务预分配大小`](server-system-variables.html#sysvar_transaction_prealloc_size).

-   [](<>) [`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)

    [](<>)[](<>)

    | 命令行格式 | `--事务隔离=名称` |
    | ----- | ----------- |
    | 系统变量 | `[transaction_isolation]（server system variables.html#sysvar_transaction_isolation）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `可重复读` |
    | 有效值 | `只读未提交`<br/><br/>`只读承诺`<br/><br/>`可重复读`<br/><br/>`可序列化` |

    事务隔离级别。默认值是[`可重复读`](innodb-transaction-isolation-levels.html#isolevel_repeatable-read).

    事务隔离级别有三个作用域：全局、会话和下一个事务。这三个作用域的实现导致了一些非标准的隔离级别分配语义，如下文所述。

    要在启动时设置全局事务隔离级别，请使用[`--事务隔离`](server-options.html#option_mysqld_transaction-isolation)服务器选项。

    在运行时，可以使用[`设置`](set-variable.html)语句为[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)系统变量，或间接使用[`设置事务`](set-transaction.html)陈述如果你设定[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)直接指向包含空格的隔离级别名称，该名称应该用引号括起来，空格用破折号代替。例如，使用这个[`设置`](set-variable.html)语句来设置全局值：

    ```
    SET GLOBAL transaction_isolation = 'READ-COMMITTED';
    ```

    设定全球[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)值设置所有后续会话的隔离级别。现有会话不受影响。

    设置会话或下一级别[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)值，使用[`设置`](set-variable.html)陈述对于大多数会话系统变量，这些语句是设置值的等效方法：

    ```
    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    ```

    如前所述，除了全局和会话作用域之外，事务隔离级别还有下一个事务作用域。要设置下一个事务范围，[`设置`](set-variable.html)分配会话系统变量值的语法对于[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation):

    -   要设置会话隔离级别，请使用以下任一语法：

        ```
        SET @@SESSION.transaction_isolation = value;
        SET SESSION transaction_isolation = value;
        SET transaction_isolation = value;
        ```

        对于这些语法中的每一种，都适用以下语义：

        -   为会话中执行的所有后续事务设置隔离级别。

        -   允许进行交易，但不影响当前正在进行的交易。

        -   如果在事务之间执行，则覆盖设置下一个事务隔离级别的任何前面的语句。

        -   对应于[`设置会话事务隔离级别`](set-transaction.html)（与`一场`关键词）。

    -   要设置下一个事务隔离级别，请使用以下语法：

        ```
        SET @@transaction_isolation = value;
        ```

        对于该语法，以下语义适用：

        -   仅为会话中执行的下一个事务设置隔离级别。

        -   后续事务将恢复到会话隔离级别。

        -   不允许在交易中使用。

        -   对应于[`设置事务隔离级别`](set-transaction.html)（没有`一场`关键词）。

        有关[`设置事务`](set-transaction.html)以及它与[`事务隔离`](server-system-variables.html#sysvar_transaction_isolation)系统变量，请参见[第13.3.7节“设置交易报表”](set-transaction.html).

-   [](<>) [`事务预分配大小`](server-system-variables.html#sysvar_transaction_prealloc_size)

    [](<>)[](<>)

    | 命令行格式 | `--事务预分配大小=#` |
    | ----- | ------------- |
    | 反对 | 8.0.29 |
    | 系统变量 | `[transaction_prealloc_size]（server system variables.html#sysvar_transaction_prealloc_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4096` |
    | 最小值 | `1024` |
    | 最大值 | `131072` |
    | 块大小 | `1024` |

    每个事务都有一个内存池，各种事务相关的分配从中获取内存。池的初始大小（以字节为单位）为`事务预分配大小`。对于由于可用内存不足而无法从池中满足的每个分配，池将增加[`事务分配块大小`](server-system-variables.html#sysvar_transaction_alloc_block_size)字节。事务结束时，池被截断为`事务预分配大小`字节。通过制造`事务预分配大小`足够大，可以在一个事务中包含所有语句，可以避免许多`malloc（）`电话。

    从MySQL 8.0.29开始，`事务预分配大小`不赞成；事务内存池的初始大小是固定的，设置此变量不再有任何效果。（a）该组织的运作`事务分配块大小`不受此变化的影响。）预料`事务预分配大小`将在MySQL的未来版本中删除。

-   [](<>) [`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)

    [](<>)[](<>)

    | 命令行格式 | `--事务只读[={OFF | ON}]` |
    | ----- | --------------------- |
    | 系统变量 | `[transaction_read_only]（server system variables.html#sysvar_transaction_read_only）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    事务访问模式。价值可以是`关`（读/写；默认值）或`在…上`（只读）。

    事务访问模式有三个作用域：全局、会话和下一个事务。这三个作用域的实现导致了一些非标准的访问模式分配语义，如下文所述。

    要在启动时设置全局事务访问模式，请使用[`--事务只读`](server-options.html#option_mysqld_transaction-read-only)服务器选项。

    在运行时，可以使用[`设置`](set-variable.html)语句为[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)系统变量，或间接使用[`设置事务`](set-transaction.html)陈述例如，使用这个[`设置`](set-variable.html)语句来设置全局值：

    ```
    SET GLOBAL transaction_read_only = ON;
    ```

    设定全球[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)值设置所有后续会话的访问模式。现有会话不受影响。

    设置会话或下一级别[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)值，使用[`设置`](set-variable.html)陈述对于大多数会话系统变量，这些语句是设置值的等效方法：

    ```
    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    ```

    如前所述，除了全局范围和会话范围之外，事务访问模式还有下一个事务范围。要设置下一个事务范围，[`设置`](set-variable.html)分配会话系统变量值的语法对于[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only),

    -   要设置会话访问模式，请使用以下任一语法：

        ```
        SET @@SESSION.transaction_read_only = value;
        SET SESSION transaction_read_only = value;
        SET transaction_read_only = value;
        ```

        对于这些语法中的每一种，都适用以下语义：

        -   为会话中执行的所有后续事务设置访问模式。

        -   允许进行交易，但不影响当前正在进行的交易。

        -   如果在事务之间执行，则覆盖设置下一个事务访问模式的任何前面的语句。

        -   对应于[`设置会话事务{READ WRITE | READ ONLY}`](set-transaction.html)（与`一场`关键词）。

    -   要设置下一个事务访问模式，请使用以下语法：

        ```
        SET @@transaction_read_only = value;
        ```

        对于该语法，以下语义适用：

        -   仅为会话中执行的下一个单一事务设置访问模式。

        -   后续事务将恢复到会话访问模式。

        -   不允许在交易中使用。

        -   对应于[`设置事务{READ WRITE | READ ONLY}`](set-transaction.html)（没有`一场`关键词）。

        有关[`设置事务`](set-transaction.html)以及它与[`事务_只读`](server-system-variables.html#sysvar_transaction_read_only)系统变量，请参见[第13.3.7节“设置交易报表”](set-transaction.html).

-   [](<>) [`独特的支票`](server-system-variables.html#sysvar_unique_checks)

    [](<>)[](<>)

    | 系统变量 | `[unique_checks]（server system variables.html#sysvar_unique_checks）` |
    | ---- | -------------------------------------------------------------------- |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果设置为1（默认值），唯一性将检查`InnoDB`执行表格。如果设置为0，则允许存储引擎假定输入数据中不存在重复密钥。如果确定数据不包含唯一性冲突，可以将其设置为0，以加快将大型表导入到的速度`InnoDB`.

    将此变量设置为0不起作用*要求*存储引擎忽略重复的密钥。引擎仍然可以检查这些错误，如果检测到这些错误，还可以发布重复的密钥错误。

-   [](<>) [`有限制的可更新的视图`](server-system-variables.html#sysvar_updatable_views_with_limit)

    [](<>)[](<>)

    | 命令行格式 | `--有限制的可更新视图[={OFF | ON}]` |
    | ----- | -------------------------- |
    | 系统变量 | `[Updateable_views_with_limit]（server system variables.html#sysvar_Updateable_views_with_limit）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `1.` |

    如果update语句包含`限度`条款（此类更新通常由GUI工具生成。）更新是一种[`使现代化`](update.html)或[`删去`](delete.html)陈述主键在这里的意思是`主键`，或`唯一的`任何列都不能包含的索引`无效的`.

    变量可以有两个值：

    -   `1.`或`对`：仅发出警告（而不是错误消息）。这是默认值。

    -   `0`或`不`：禁止更新。

-   [](<>) [`使用辅助引擎`](server-system-variables.html#sysvar_use_secondary_engine)

    [](<>)[](<>)

    | 介绍 | 8.0.13 |
    | --- | ------ |
    | 系统变量 | `[use_secondary_engine]（server system variables.html#sysvar_use_secondary_engine）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 列举 |
    | 默认值 | `在…上` |
    | 有效值 | `关`<br/><br/>`在…上`<br/><br/>`强迫` |

    供将来使用。

    是否使用辅助引擎执行查询。

    用于热浪。看见[热浪用户指南](https://dev.mysql.com/doc/heatwave/en/).

-   `验证密码*`xxx`*`

    这个`验证密码`组件实现一组具有表单名称的系统变量`验证密码*`xxx`*`.这些变量影响该组件的密码测试；看见[第6.4.3.2节，“密码验证选项和变量”](validate-password-options-variables.html).

-   [](<>) [`版本`](server-system-variables.html#sysvar_version)

    [](<>)[](<>)

    服务器的版本号。该值还可能包含一个后缀，指示服务器构建或配置信息。`-调试`指示服务器是在启用调试支持的情况下生成的。

-   [](<>) [`版本注释`](server-system-variables.html#sysvar_version_comment)

    [](<>)[](<>)

    | 系统变量 | `[version_comment]（server system variables.html#sysvar_version_comment）` |
    | ---- | ------------------------------------------------------------------------ |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    这个**CMake**配置程序有一个[`编译注释服务器`](source-configuration-options.html#option_cmake_compilation_comment_server)选项，允许在构建MySQL时指定注释。此变量包含该注释的值。（MySQL 8.0.14之前，[`版本注释`](server-system-variables.html#sysvar_version_comment)是由[`编辑与评论`](source-configuration-options.html#option_cmake_compilation_comment)选项。）看见[第2.9.7节，“MySQL源配置选项”](source-configuration-options.html).

-   [](<>) [`版本编译机器`](server-system-variables.html#sysvar_version_compile_machine)

    [](<>)[](<>)

    | 系统变量 | `[version_compile_machine]（server system variables.html#sysvar_version_compile_machine）` |
    | ---- | ---------------------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    服务器二进制文件的类型。

-   [](<>) [`版本编译操作系统`](server-system-variables.html#sysvar_version_compile_os)

    [](<>)[](<>)

    | 系统变量 | `[version_compile_os]（server system variables.html#sysvar_version_compile_os）` |
    | ---- | ------------------------------------------------------------------------------ |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    构建MySQL的操作系统类型。

-   [](<>) [`版本_编译_zlib`](server-system-variables.html#sysvar_version_compile_zlib)

    [](<>)[](<>)

    | 系统变量 | `[version_compile_zlib]（server system variables.html#sysvar_version_compile_zlib）` |
    | ---- | ---------------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    中编译的版本`兹利布`图书馆

-   [](<>) [`等等，暂停`](server-system-variables.html#sysvar_wait_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--等待超时=#` |
    | ----- | ---------- |
    | 系统变量 | `[wait_timeout]（server system variables.html#sysvar_wait_timeout）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `28800` |
    | 最小值 | `1.` |
    | 最大值（Windows） | `2147483` |
    | 最大值（其他） | `31536000` |

    服务器在关闭非交互连接之前等待活动的秒数。

    在线程启动时，会话[`等等，暂停`](server-system-variables.html#sysvar_wait_timeout)值是从全局变量初始化的[`等等，暂停`](server-system-variables.html#sysvar_wait_timeout)价值还是来自全球[`交互超时`](server-system-variables.html#sysvar_interactive_timeout)值，具体取决于客户端的类型（由`客户互动`连接选项到[`mysql_real_connect（）`](https://dev.mysql.com/doc/c-api/8.0/en/mysql-real-connect.html)).另见[`交互超时`](server-system-variables.html#sysvar_interactive_timeout).

-   [](<>) [`警告!`](server-system-variables.html#sysvar_warning_count)

    [](<>)[](<>)

    生成消息的最后一条语句导致的错误、警告和注释数。此变量为只读。看见[第13.7.7.42节，“显示警告声明”](show-warnings.html).

-   [](<>) [`开窗\u使用\u高\u精度`](server-system-variables.html#sysvar_windowing_use_high_precision)

    [](<>)[](<>)

    | 命令行格式 | `--开窗使用高精度[={OFF | ON}]` |
    | ----- | ------------------------ |
    | 系统变量 | `[windowing_use_high_precision]（server system variables.html#sysvar_windowing_use_high_precision）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 对 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    是否在不损失精度的情况下计算窗口操作。看见[第8.2.1.21节，“窗口功能优化”](window-function-optimization.html).

-   [](<>) [`xa_分离_上_准备`](server-system-variables.html#sysvar_xa_detach_on_prepare)

    [](<>)[](<>)

    | 命令行格式 | `--xa准备时分离[={OFF | on}]` |
    | ----- | ------------------------ |
    | 介绍 | 8.0.29 |
    | 系统变量 | `[xa_detach_on_prepare]（server system variables.html#sysvar_xa_detach_on_prepare）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    当设置为`在…上`（已启用），所有XA事务将作为[`XA准备`](xa-statements.html)。这意味着即使原始连接尚未终止，XA事务也可以由另一个连接提交或回滚，并且该连接可以启动新事务。

    临时表不能在分离的XA事务中使用。

    当这是`关`（禁用），XA事务严格与同一连接关联，直到会话断开连接。建议您允许为复制启用它（默认行为）。

    有关更多信息，请参阅[第13.3.8.2节，“XA事务状态”](xa-states.html).
