7.1.9 使用系统变量
原文:
dev.mysql.com/doc/refman/8.0/en/using-system-variables.html
7.1.9.1 系统变量权限
7.1.9.2 动态系统变量
7.1.9.3 持久化系统变量
7.1.9.4 非持久性和持久受限制的系统变量
7.1.9.5 结构化系统变量
MySQL 服务器维护许多系统变量来配置其操作。第 7.1.8 节,“服务器系统变量”,描述了这些变量的含义。每个系统变量都有一个默认值。系统变量可以在服务器启动时使用命令行选项或选项文件进行设置。大多数系统变量可以通过SET
语句在服务器运行时动态更改,这使您可以修改服务器的操作而无需停止和重新启动它。您还可以在表达式中使用系统变量的值。
许多系统变量是内置的。系统变量也可以由服务器插件或组件安装:
-
当服务器插件安装时,由插件实现的系统变量会暴露出来,并且其名称以插件名称开头。例如,
audit_log
插件实现了一个名为audit_log_policy
的系统变量。 -
当组件实现的系统变量在安装组件时暴露出来时,其名称以组件特定前缀开头。例如,
log_filter_dragnet
错误日志过滤组件实现了一个名为log_error_filter_rules
的系统变量,其完整名称为dragnet.log_error_filter_rules
。要引用此变量,请使用完整名称。
系统变量存在两个范围。全局变量影响服务器的整体操作。会话变量影响单个客户端连接的操作。给定的系统变量可以同时具有全局值和会话值。全局和会话系统变量之间的关系如下:
-
当服务器启动时,它会将每个全局变量初始化为其默认值。这些默认值可以通过在命令行或选项文件中指定的选项进行更改。(参见第 6.2.2 节,“指定程序选项”.)
-
服务器还为每个连接的客户端维护一组会话变量。客户端的会话变量在连接时使用相应全局变量的当前值进行初始化。例如,客户端的 SQL 模式由会话
sql_mode
值控制,该值在客户端连接到全局sql_mode
值时进行初始化。对于某些系统变量,会话值不是从相应的全局值初始化的;如果是这样,变量描述中会指出。
可以通过在命令行或选项文件中使用选项在服务器启动时全局设置系统变量的值。在启动时,系统变量的语法与命令选项相同,因此在变量名称中,破折号和下划线可以互换使用。例如,--general_log=ON
和--general-log=ON
是等效的。
当您使用启动选项设置需要数字值的变量时,可以使用K
、M
或G
(大写或小写)的后缀表示 1024、1024²或 1024³的倍数;即,单位为千字节、兆字节或千兆字节。从 MySQL 8.0.14 开始,后缀也可以是T
、P
和E
,表示 1024⁴、1024⁵或 1024⁶的倍数。因此,以下命令启动服务器时,排序缓冲区大小为 256 千字节,最大数据包大小为 1 千兆字节:
mysqld --sort-buffer-size=256K --max-allowed-packet=1G
在选项文件中,这些变量设置如下:
[mysqld]
sort_buffer_size=256K
max_allowed_packet=1G
后缀字母的大小写不重要;256K
和256k
是等效的,1G
和1g
也是等效的。
要限制可以在运行时使用SET
语句设置的系统变量的最大值,请在服务器启动时使用形式为--maximum-*
var_name*=*
value*
的选项指定此最大值。例如,要防止sort_buffer_size
的值在运行时增加到超过 32MB,使用选项--maximum-sort-buffer-size=32M
。
许多系统变量是动态的,可以通过使用SET
语句在运行时进行更改。有关列表,请参见 Section 7.1.9.2,“动态系统变量”。要使用SET
更改系统变量,请按名称引用,可选地在前面加上修饰符。在运行时,系统变量名称必须使用下划线而不是破折号编写。以下示例简要说明了此语法:
-
设置全局系统变量:
SET GLOBAL max_connections = 1000; SET @@GLOBAL.max_connections = 1000;
-
将全局系统变量持久化到
mysqld-auto.cnf
文件(并设置运行时值):SET PERSIST max_connections = 1000; SET @@PERSIST.max_connections = 1000;
-
将全局系统变量持久化到
mysqld-auto.cnf
文件(而不设置运行时值):SET PERSIST_ONLY back_log = 1000; SET @@PERSIST_ONLY.back_log = 1000;
-
设置会话系统变量:
SET SESSION sql_mode = 'TRADITIONAL'; SET @@SESSION.sql_mode = 'TRADITIONAL'; SET @@sql_mode = 'TRADITIONAL';
有关SET
语法的完整详细信息,请参阅 Section 15.7.6.1, “SET Syntax for Variable Assignment”。有关设置和持久化系统变量所需的特权要求的描述,请参阅 Section 7.1.9.1, “System Variable Privileges”
在服务器启动时设置变量时,可以使用值乘数后缀,但不能在运行时使用SET
设置值。另一方面,使用SET
可以使用表达式分配变量的值,在服务器启动时设置变量时不适用。例如,以下行中的第一行在服务器启动时是合法的,但第二行不是:
$> mysql --max_allowed_packet=16M
$> mysql --max_allowed_packet=16*1024*1024
相反,以下行中的第二行在运行时是合法的,但第一行不是:
mysql> SET GLOBAL max_allowed_packet=16M;
mysql> SET GLOBAL max_allowed_packet=16*1024*1024;
要显示系统变量名称和值,请使用SHOW VARIABLES
语句:
mysql> SHOW VARIABLES;
+---------------------------------+-----------------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 151 |
| basedir | /home/mysql/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /home/mysql/share/charsets/ |
| check_proxy_users | OFF |
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_0900_ai_ci |
| collation_server | utf8mb4_0900_ai_ci |
...
| innodb_autoextend_increment | 8 |
| innodb_buffer_pool_size | 8388608 |
| innodb_commit_concurrency | 0 |
| innodb_concurrency_tickets | 500 |
| innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir | |
...
| version | 8.0.31 |
| version_comment | Source distribution |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| version_compile_zlib | 1.2.12 |
| wait_timeout | 28800 |
+---------------------------------+-----------------------------------+
使用LIKE
子句,语句仅显示与模式匹配的变量。要获取特定变量名,请使用如下所示的LIKE
子句:
SHOW VARIABLES LIKE 'max_join_size';
SHOW SESSION VARIABLES LIKE 'max_join_size';
要获取与模式匹配的变量列表,请在LIKE
子句中使用%
通配符字符:
SHOW VARIABLES LIKE '%size%';
SHOW GLOBAL VARIABLES LIKE '%size%';
通配符字符可以在要匹配的模式中的任何位置使用。严格来说,因为_
是匹配任意单个字符的通配符,您应该将其转义为\_
以确实匹配它。实际上,这很少是必要的。
对于SHOW VARIABLES
,如果既不指定GLOBAL
也不指定SESSION
,MySQL 将返回SESSION
值。
在设置仅限GLOBAL
变量时需要GLOBAL
关键字但在检索时不需要的原因是为了防止未来出现问题:
-
如果删除具有与
GLOBAL
变量相同名称的SESSION
变量,则具有足够权限修改全局变量的客户端可能会意外更改GLOBAL
变量,而不仅仅是自己会话的SESSION
变量。 -
如果添加具有与
GLOBAL
变量相同名称的SESSION
变量,则打算更改GLOBAL
变量的客户端可能只会发现自己的SESSION
变量被更改。
原文:
dev.mysql.com/doc/refman/8.0/en/system-variable-privileges.html
7.1.9.1 系统变量权限
系统变量可以具有影响整个服务器操作的全局值,影响仅当前会话的会话值,或两者:
-
对于动态系统变量,
SET
语句可用于更改它们的全局或会话运行时值(或两者),以影响当前服务器实例的操作。(有关动态变量的信息,请参见第 7.1.9.2 节,“动态系统变量”。) -
对于某些全局系统变量,可以使用
SET
将它们的值持久化到数据目录中的mysqld-auto.cnf
文件,以影响后续启动的服务器操作。(有关持久化系统变量和mysqld-auto.cnf
文件的信息,请参见第 7.1.9.3 节,“持久化系统变量”。) -
对于持久化的全局系统变量,可以使用
RESET PERSIST
来从mysqld-auto.cnf
中删除它们的值,以影响后续启动的服务器操作。
本节描述了在运行时为系统变量分配值所需的权限。这包括影响运行时值的操作和持久化值的操作。
要设置全局系统变量,请使用带有适当关键字的SET
语句。这些权限适用:
-
要设置全局系统变量的运行时值,请使用
SET GLOBAL
语句,需要SYSTEM_VARIABLES_ADMIN
权限(或已弃用的SUPER
权限)。 -
要将全局系统变量持久化到
mysqld-auto.cnf
文件(并设置运行时值),请使用SET PERSIST
语句,需要SYSTEM_VARIABLES_ADMIN
或SUPER
权限。 -
要将全局系统变量持久化到
mysqld-auto.cnf
文件(而不设置运行时值),使用SET PERSIST_ONLY
语句,需要SYSTEM_VARIABLES_ADMIN
和PERSIST_RO_VARIABLES_ADMIN
特权。SET PERSIST_ONLY
可用于动态和只读系统变量,但特别适用于持久化只读变量,对于这些变量,不能使用SET PERSIST
。 -
一些全局系统变量是持久限制的(参见第 7.1.9.4 节,“不可持久化和持久限制的系统变量”)。要持久化这些变量,使用
SET PERSIST_ONLY
语句,需要之前描述的特权。此外,您必须使用加密连接连接到服务器,并提供一个 SSL 证书,其 Subject 值由persist_only_admin_x509_subject
系统变量指定。
要从mysqld-auto.cnf
文件中删除持久化的全局系统变量,请使用RESET PERSIST
语句。这些特权适用:
-
对于动态系统变量,
RESET PERSIST
需要SYSTEM_VARIABLES_ADMIN
或SUPER
特权。 -
对于只读系统变量,
RESET PERSIST
需要SYSTEM_VARIABLES_ADMIN
和PERSIST_RO_VARIABLES_ADMIN
特权。 -
对于持久限制的变量,
RESET PERSIST
不需要使用特定 SSL 证书建立的加密连接到服务器。
如果全局系统变量有任何对前述特权要求的例外情况,变量描述中会指出这些例外情况。例如,default_table_encryption
和mandatory_roles
需要额外的特权。这些额外的特权适用于设置全局运行时值的操作,但不适用于持久化值的操作。
要设置会话系统变量的运行时值,请使用SET SESSION
语句。与设置全局运行时值相比,设置会话运行时值通常不需要特殊权限,并且可以由任何用户执行以影响当前会话。对于某些系统变量,设置会话值可能会影响当前会话之外的效果,因此这是一项受限制的操作,只能由具有特殊权限的用户执行:
-
从 MySQL 8.0.14 开始,所需的权限是
SESSION_VARIABLES_ADMIN
。注意
任何具有
SYSTEM_VARIABLES_ADMIN
或SUPER
权限的用户实际上通过暗示具有SESSION_VARIABLES_ADMIN
权限,因此不需要显式授予SESSION_VARIABLES_ADMIN
。 -
在 MySQL 8.0.14 之前,所需的权限是
SYSTEM_VARIABLES_ADMIN
或SUPER
。
如果会话系统变量受限制,变量描述会指出该限制。例如包括binlog_format
和sql_log_bin
。设置这些变量的会话值会影响当前会话的二进制日志记录,但也可能对服务器复制和备份的完整性产生更广泛的影响。
SESSION_VARIABLES_ADMIN
使管理员能够最小化先前可能已被授予SYSTEM_VARIABLES_ADMIN
或SUPER
权限的用户的权限足迹,以便使他们能够修改受限制的会话系统变量。假设管理员已创建以下角色以授予设置受限制会话系统变量的能力:
CREATE ROLE set_session_sysvars;
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO set_session_sysvars;
任何被授予set_session_sysvars
角色(并且该角色处于活动状态)的用户都能够设置受限制的会话系统变量。但是,该用户也能够设置全局系统变量,这可能是不希望的。
通过修改角色为SESSION_VARIABLES_ADMIN
而不是SYSTEM_VARIABLES_ADMIN
,可以将角色权限减少为仅能够设置受限制的会话系统变量而已。要修改角色,请使用以下语句:
GRANT SESSION_VARIABLES_ADMIN ON *.* TO set_session_sysvars;
REVOKE SYSTEM_VARIABLES_ADMIN ON *.* FROM set_session_sysvars;
修改角色会立即生效:任何被授予set_session_sysvars
角色的账户将不再具有SYSTEM_VARIABLES_ADMIN
,也无法在未明确授予该权限的情况下设置全局系统变量。类似的GRANT
/REVOKE
序列可以应用于任何直接被授予SYSTEM_VARIABLES_ADMIN
而非通过角色授予的账户。
原文:
dev.mysql.com/doc/refman/8.0/en/dynamic-system-variables.html
7.1.9.2 动态系统变量
许多服务器系统变量是动态的,可以在运行时设置。请参阅第 15.7.6.1 节,“变量赋值的 SET 语法”。有关设置系统变量的权限要求的描述,请参阅第 7.1.9.1 节,“系统变量权限”
以下表格列出了所有适用于mysqld
中的动态系统变量。
表格列出了每个变量的数据类型和范围。最后一列指示每个变量的范围是全局、会话还是两者兼有。有关设置和使用变量的详细信息,请参阅相应项目描述。在适当的情况下,提供了有关项目的进一步信息的直接链接。
类型为“字符串”的变量接受字符串值。类型为“数值”的变量接受数值。类型为“布尔”的变量可以设置为 0、1、ON
或OFF
。标记为“枚举”的变量通常应设置为变量的可用值之一,但也可以设置为对应所需枚举值的数字。对于枚举系统变量,第一个枚举值对应于 0。这与用于表列的ENUM
数据类型不同,对于表列,第一个枚举值对应于 1。
表 7.5 动态系统变量摘要
变量名称 | 变量类型 | 变量范围 |
---|---|---|
activate_all_roles_on_login | 布尔值 | 全局 |
admin_ssl_ca | 文件名 | 全局 |
admin_ssl_capath | 目录名称 | 全局 |
admin_ssl_cert | 文件名 | 全局 |
admin_ssl_cipher | 字符串 | 全局 |
admin_ssl_crl | 文件名 | 全局 |
admin_ssl_crlpath | 目录名称 | 全局 |
admin_ssl_key | 文件名 | 全局 |
admin_tls_ciphersuites | 字符串 | 全局 |
admin_tls_version | 字符串 | 全局 |
audit_log_connection_policy | 枚举 | 全局 |
audit_log_disable | 布尔值 | 全局 |
audit_log_exclude_accounts | 字符串 | 全局 |
audit_log_flush | 布尔值 | 全局 |
audit_log_format_unix_timestamp | 布尔值 | 全局 |
audit_log_include_accounts | 字符串 | 全局 |
audit_log_max_size | 整数 | 全局 |
audit_log_password_history_keep_days | 整数 | 全局 |
audit_log_prune_seconds | 整数 | 全局 |
audit_log_read_buffer_size | 整数 | 不定 |
audit_log_rotate_on_size | 整数 | 全局 |
audit_log_statement_policy | 枚举 | 全局 |
authentication_fido_rp_id | 字符串 | 全局 |
authentication_kerberos_service_principal | 字符串 | 全局 |
authentication_ldap_sasl_auth_method_name | 字符串 | 全局 |
authentication_ldap_sasl_bind_base_dn | 字符串 | 全局 |
authentication_ldap_sasl_bind_root_dn | 字符串 | 全局 |
authentication_ldap_sasl_bind_root_pwd | 字符串 | 全局 |
authentication_ldap_sasl_ca_path | 字符串 | 全局 |
authentication_ldap_sasl_group_search_attr | 字符串 | 全局 |
authentication_ldap_sasl_group_search_filter | 字符串 | 全局 |
authentication_ldap_sasl_init_pool_size | 整数 | 全局 |
authentication_ldap_sasl_log_status | 整数 | 全局 |
authentication_ldap_sasl_max_pool_size | 整数 | 全局 |
authentication_ldap_sasl_referral | 布尔值 | 全局 |
authentication_ldap_sasl_server_host | 字符串 | 全局 |
authentication_ldap_sasl_server_port | 整数 | 全局 |
authentication_ldap_sasl_tls | 布尔值 | 全局 |
authentication_ldap_sasl_user_search_attr | 字符串 | 全局 |
authentication_ldap_simple_auth_method_name | 字符串 | 全局 |
authentication_ldap_simple_bind_base_dn | 字符串 | 全局 |
authentication_ldap_simple_bind_root_dn | 字符串 | 全局 |
authentication_ldap_simple_bind_root_pwd | 字符串 | 全局 |
authentication_ldap_simple_ca_path | 字符串 | 全局 |
authentication_ldap_simple_group_search_attr | 字符串 | 全局 |
authentication_ldap_simple_group_search_filter | 字符串 | 全局 |
authentication_ldap_simple_init_pool_size | 整数 | 全局 |
authentication_ldap_simple_log_status | 整数 | 全局 |
authentication_ldap_simple_max_pool_size | 整数 | 全局 |
authentication_ldap_simple_referral | 布尔值 | 全局 |
authentication_ldap_simple_server_host | 字符串 | 全局 |
authentication_ldap_simple_server_port | 整数 | 全局 |
authentication_ldap_simple_tls | 布尔值 | 全局 |
authentication_ldap_simple_user_search_attr | 字符串 | 全局 |
authentication_policy | 字符串 | 全局 |
auto_increment_increment | 整数 | 两者 |
auto_increment_offset | 整数 | 两者 |
autocommit | 布尔值 | 两者 |
automatic_sp_privileges | 布尔值 | 全局 |
avoid_temporal_upgrade | 布尔值 | 全局 |
big_tables | 布尔值 | 两者 |
binlog_cache_size | 整数 | 全局 |
binlog_checksum | 字符串 | 全局 |
binlog_direct_non_transactional_updates | 布尔值 | 两者 |
binlog_encryption | 布尔值 | 全局 |
binlog_error_action | 枚举 | 全局 |
binlog_expire_logs_auto_purge | 布尔值 | 全局 |
binlog_expire_logs_seconds | 整数 | 全局 |
binlog_format | 枚举 | 两者 |
binlog_group_commit_sync_delay | 整数 | 全局 |
binlog_group_commit_sync_no_delay_count | 整数 | 全局 |
binlog_max_flush_queue_time | 整数 | 全局 |
binlog_order_commits | 布尔值 | 全局 |
binlog_row_image | 枚举 | 两者 |
binlog_row_metadata | 枚举 | 全局 |
binlog_row_value_options | 集合 | 两者 |
binlog_rows_query_log_events | 布尔值 | 两者 |
binlog_stmt_cache_size | 整数 | 全局 |
二进制日志事务压缩 | 布尔值 | 两者 |
二进制日志事务压缩级别 Zstd | 整数 | 两者 |
二进制日志事务依赖历史大小 | 整数 | 全局 |
二进制日志事务依赖跟踪 | 枚举 | 全局 |
块加密模式 | 字符串 | 两者 |
批量插入缓冲区大小 | 整数 | 两者 |
客户端字符集 | 字符串 | 两者 |
连接字符集 | 字符串 | 两者 |
数据库字符集 | 字符串 | 两者 |
文件系统字符集 | 字符串 | 两者 |
结果字符集 | 字符串 | 两者 |
服务器字符集 | 字符串 | 两者 |
检查代��用户 | 布尔值 | 全局 |
自动调整并发性 | 布尔值 | 全局 |
阻止 DDL | 布尔值 | 全局 |
克隆缓冲区大小 | 整数 | 全局 |
克隆 DDL 超时时间 | 整数 | 全局 |
数据丢弃后延迟时间 | 整数 | 全局 |
网络故障后克隆赠送者超时时间 | 整数 | 全局 |
克隆启用压缩 | 布尔值 | 全局 |
克隆最大并发数 | 整数 | 全局 |
克隆最大数据带宽 | 整数 | 全局 |
克隆最大网络带宽 | 整数 | 全局 |
克隆 SSL CA | 文件名 | 全局 |
克隆 SSL 证书 | 文件名 | 全局 |
clone_ssl_key | 文件名 | 全局 |
clone_valid_donor_list | 字符串 | 全局 |
collation_connection | 字符串 | 两者 |
collation_database | 字符串 | 两者 |
collation_server | 字符串 | 两者 |
completion_type | 枚举 | 两者 |
component_scheduler.enabled | 布尔值 | 全局 |
concurrent_insert | 枚举 | 全局 |
connect_timeout | 整数 | 全局 |
connection_control_failed_connections_threshold | 整数 | 全局 |
connection_control_max_connection_delay | 整数 | 全局 |
connection_control_min_connection_delay | 整数 | 全局 |
connection_memory_chunk_size | 整数 | 两者 |
connection_memory_limit | 整数 | 两者 |
cte_max_recursion_depth | 整数 | 两者 |
debug | 字符串 | 两者 |
debug_sync | 字符串 | 会话 |
default_collation_for_utf8mb4 | 枚举 | 两者 |
default_password_lifetime | 整数 | 全局 |
default_storage_engine | 枚举 | 两者 |
default_table_encryption | 布尔值 | 两者 |
default_tmp_storage_engine | 枚举 | 两者 |
default_week_format | 整数 | 两者 |
delay_key_write | 枚举 | 全局 |
delayed_insert_limit | 整数 | 全局 |
delayed_insert_timeout | 整数 | 全局 |
delayed_queue_size | 整数 | 全局 |
div_precision_increment | 整数 | 两者 |
dragnet.log_error_filter_rules | 字符串 | 全局 |
end_markers_in_json | 布尔值 | 两者 |
enforce_gtid_consistency | 枚举 | 全局 |
enterprise_encryption.maximum_rsa_key_size | 整数 | 全局 |
enterprise_encryption.rsa_support_legacy_padding | 布尔值 | 全局 |
eq_range_index_dive_limit | 整数 | 两者 |
event_scheduler | 枚举 | 全局 |
expire_logs_days | 整数 | 全局 |
explain_format | 枚举 | 两者 |
explicit_defaults_for_timestamp | 布尔值 | 两者 |
flush | 布尔值 | 全局 |
flush_time | 整数 | 全局 |
foreign_key_checks | 布尔值 | 两者 |
ft_boolean_syntax | 字符串 | 全局 |
general_log | 布尔值 | 全局 |
general_log_file | 文件名 | 全局 |
generated_random_password_length | 整数 | 两者 |
global_connection_memory_limit | 整数 | 全局 |
global_connection_memory_tracking | 布尔值 | 两者 |
group_concat_max_len | 整数 | 两者 |
group_replication_advertise_recovery_endpoints | 字符串 | 全局 |
group_replication_allow_local_lower_version_join | 布尔值 | 全局 |
group_replication_auto_increment_increment | 整数 | 全局 |
group_replication_autorejoin_tries | 整数 | 全局 |
组复制引导组 | 布尔值 | 全局 |
组复制克隆阈值 | 整数 | 全局 |
组复制通信调试选项 | 字符串 | 全局 |
组复制通信最大消息大小 | 整数 | 全局 |
组复制组件停止超时 | 整数 | 全局 |
组复制压缩阈值 | 整数 | 全局 |
组复制一致性 | 枚举 | 双方 |
组复制强制在所有位置更新检查 | 布尔值 | 全局 |
组复制退出状态操作 | 枚举 | 全局 |
组复制流量控制应用程序阈值 | 整数 | 全局 |
组复制流量控制认证者阈值 | 整数 | 全局 |
组复制流量控制保持百分比 | 整数 | 全局 |
组复制流量控制最大配额 | 整数 | 全局 |
组复制流量控制成员配额百分比 | 整数 | 全局 |
组复制流量控制最小配额 | 整数 | 全局 |
组复制流量控制最小恢复配额 | 整数 | 全局 |
组复制流量控制模式 | 枚举 | 全局 |
组复制流量控制周期 | 整数 | 全局 |
group_replication_flow_control_release_percent | 整数 | 全局 |
group_replication_force_members | 字符串 | 全局 |
group_replication_group_name | 字符串 | 全局 |
group_replication_group_seeds | 字符串 | 全局 |
group_replication_gtid_assignment_block_size | 整数 | 全局 |
group_replication_ip_allowlist | 字符串 | 全局 |
group_replication_ip_whitelist | 字符串 | 全局 |
group_replication_local_address | 字符串 | 全局 |
group_replication_member_expel_timeout | 整数 | 全局 |
group_replication_member_weight | 整数 | 全局 |
group_replication_message_cache_size | 整数 | 全局 |
group_replication_paxos_single_leader | 布尔值 | 全局 |
group_replication_poll_spin_loops | 整数 | 全局 |
group_replication_recovery_complete_at | 枚举 | 全局 |
group_replication_recovery_compression_algorithms | 集合 | 全局 |
group_replication_recovery_get_public_key | 布尔值 | 全局 |
group_replication_recovery_public_key_path | 文件名 | 全局 |
group_replication_recovery_reconnect_interval | 整数 | 全局 |
group_replication_recovery_retry_count | 整数 | 全局 |
group_replication_recovery_ssl_ca | 字符串 | 全局 |
group_replication_recovery_ssl_capath | 字符串 | 全局 |
group_replication_recovery_ssl_cert | 字符串 | 全局 |
group_replication_recovery_ssl_cipher | 字符串 | 全局 |
group_replication_recovery_ssl_crl | 文件名 | 全局 |
group_replication_recovery_ssl_crlpath | 目录名称 | 全局 |
group_replication_recovery_ssl_key | 字符串 | 全局 |
group_replication_recovery_ssl_verify_server_cert | 布尔值 | 全局 |
group_replication_recovery_tls_ciphersuites | 字符串 | 全局 |
group_replication_recovery_tls_version | 字符串 | 全局 |
group_replication_recovery_use_ssl | 布尔值 | 全局 |
group_replication_recovery_zstd_compression_level | 整数 | 全局 |
group_replication_single_primary_mode | 布尔值 | 全局 |
group_replication_ssl_mode | 枚举 | 全局 |
group_replication_start_on_boot | 布尔值 | 全局 |
group_replication_tls_source | 枚举 | 全局 |
group_replication_transaction_size_limit | 整数 | 全局 |
group_replication_unreachable_majority_timeout | 整数 | 全局 |
group_replication_view_change_uuid | 字符串 | 全局 |
gtid_executed_compression_period | 整数 | 全局 |
gtid_mode | 枚举 | 全局 |
gtid_next | 枚举 | 会话 |
gtid_purged | 字符串 | 全局 |
histogram_generation_max_mem_size | 整数 | 两者 |
host_cache_size | 整数 | 全局 |
identity | 整数 | 会话 |
immediate_server_version | 整数 | 会话 |
information_schema_stats_expiry | 整数 | 两者 |
init_connect | 字符串 | 全局 |
init_replica | 字符串 | 全局 |
init_slave | 字符串 | 全局 |
innodb_adaptive_flushing | 布尔值 | 全局 |
innodb_adaptive_flushing_lwm | 整数 | 全局 |
innodb_adaptive_hash_index | 布尔值 | 全局 |
innodb_adaptive_max_sleep_delay | 整数 | 全局 |
innodb_api_bk_commit_interval | 整数 | 全局 |
innodb_api_trx_level | 整数 | 全局 |
innodb_autoextend_increment | 整数 | 全局 |
innodb_background_drop_list_empty | 布尔值 | 全局 |
innodb_buffer_pool_dump_at_shutdown | 布尔值 | 全局 |
innodb_buffer_pool_dump_now | 布尔值 | 全局 |
innodb_buffer_pool_dump_pct | 整数 | 全局 |
innodb_buffer_pool_filename | 文件名 | 全局 |
innodb_buffer_pool_in_core_file | 布尔值 | 全局 |
innodb_buffer_pool_load_abort | 布尔值 | 全局 |
innodb_buffer_pool_load_now | 布尔值 | 全局 |
innodb_buffer_pool_size | 整数 | 全局 |
innodb_change_buffer_max_size | 整数 | 全局 |
innodb_change_buffering | 枚举 | 全局 |
innodb_change_buffering_debug | 整数 | 全局 |
innodb_checkpoint_disabled | 布尔值 | 全局 |
innodb_checksum_algorithm | 枚举 | 全局 |
innodb_cmp_per_index_enabled | 布尔值 | 全局 |
innodb_commit_concurrency | 整数 | 全局 |
innodb_compress_debug | 枚举 | 全局 |
innodb_compression_failure_threshold_pct | 整数 | 全局 |
innodb_compression_level | 整数 | 全局 |
innodb_compression_pad_pct_max | 整数 | 全局 |
innodb_concurrency_tickets | 整数 | 全局 |
innodb_ddl_buffer_size | 整数 | 全局 |
innodb_ddl_log_crash_reset_debug | 布尔值 | 全局 |
innodb_ddl_threads | 整数 | 全局 |
innodb_deadlock_detect | 布尔值 | 全局 |
innodb_default_row_format | 枚举 | 全局 |
innodb_disable_sort_file_cache | 布尔值 | 全局 |
innodb_doublewrite | 枚举 | 全局 |
innodb_extend_and_initialize | 布尔值 | 全局 |
innodb_fast_shutdown | 整数 | 全局 |
innodb_fil_make_page_dirty_debug | 整数 | 全局 |
innodb_file_per_table | 布尔值 | 全局 |
innodb_fill_factor | 整数 | 全局 |
innodb_flush_log_at_timeout | 整数 | 全局 |
innodb_flush_log_at_trx_commit | 枚举 | 全局 |
innodb_flush_neighbors | 枚举 | 全局 |
innodb_flush_sync | 布尔值 | 全局 |
innodb_flushing_avg_loops | 整数 | 全局 |
innodb_fsync_threshold | 整数 | 全局 |
innodb_ft_aux_table | 字符串 | 全局 |
innodb_ft_enable_diag_print | 布尔值 | 全局 |
innodb_ft_enable_stopword | 布尔值 | 两者 |
innodb_ft_num_word_optimize | 整数 | 全局 |
innodb_ft_result_cache_limit | 整数 | 全局 |
innodb_ft_server_stopword_table | 字符串 | 全局 |
innodb_ft_user_stopword_table | 字符串 | 两者 |
innodb_idle_flush_pct | 整数 | 全局 |
innodb_io_capacity | 整数 | 全局 |
innodb_io_capacity_max | 整数 | 全局 |
innodb_limit_optimistic_insert_debug | 整数 | 全局 |
innodb_lock_wait_timeout | 整数 | 两者 |
innodb_log_buffer_size | 整数 | 全局 |
innodb_log_checkpoint_fuzzy_now | 布尔值 | 全局 |
innodb_log_checkpoint_now | 布尔值 | 全局 |
innodb_log_checksums | 布尔值 | 全局 |
innodb_log_compressed_pages | 布尔值 | 全局 |
innodb_log_spin_cpu_abs_lwm | 整数 | 全局 |
innodb_log_spin_cpu_pct_hwm | 整数 | 全局 |
innodb_log_wait_for_flush_spin_hwm | 整数 | 全局 |
innodb_log_write_ahead_size | 整数 | 全局 |
innodb_log_writer_threads | 布尔值 | 全局 |
innodb_lru_scan_depth | 整数 | 全局 |
innodb_max_dirty_pages_pct | 数值 | 全局 |
innodb_max_dirty_pages_pct_lwm | 数值 | 全局 |
innodb_max_purge_lag | 整数 | 全局 |
innodb_max_purge_lag_delay | 整数 | 全局 |
innodb_max_undo_log_size | 整数 | 全局 |
innodb_merge_threshold_set_all_debug | 整数 | 全局 |
innodb_monitor_disable | 字符串 | 全局 |
innodb_monitor_enable | 字符串 | 全局 |
innodb_monitor_reset | 枚举 | 全局 |
innodb_monitor_reset_all | 枚举 | 全局 |
innodb_old_blocks_pct | 整数 | 全局 |
innodb_old_blocks_time | 整数 | 全局 |
innodb_online_alter_log_max_size | 整数 | 全局 |
innodb_open_files | 整数 | 全局 |
innodb_optimize_fulltext_only | 布尔值 | 全局 |
innodb_parallel_read_threads | 整数 | 会话 |
innodb_print_all_deadlocks | 布尔值 | 全局 |
innodb_print_ddl_logs | 布尔值 | 全局 |
innodb_purge_batch_size | 整数 | 全局 |
innodb_purge_rseg_truncate_frequency | 整数 | 全局 |
innodb_random_read_ahead | 布尔值 | 全局 |
innodb_read_ahead_threshold | 整数 | 全局 |
innodb_redo_log_archive_dirs | 字符串 | 全局 |
innodb_redo_log_capacity | 整数 | 全局 |
innodb_redo_log_encrypt | 布尔值 | 全局 |
innodb_replication_delay | 整数 | 全局 |
innodb_rollback_segments | 整数 | 全局 |
innodb_saved_page_number_debug | 整数 | 全局 |
innodb_segment_reserve_factor | 数值 | 全局 |
innodb_spin_wait_delay | 整数 | 全局 |
innodb_spin_wait_pause_multiplier | 整数 | 全局 |
innodb_stats_auto_recalc | 布尔值 | 全局 |
innodb_stats_include_delete_marked | 布尔值 | 全局 |
innodb_stats_method | 枚举 | 全局 |
innodb_stats_on_metadata | 布尔值 | 全局 |
innodb_stats_persistent | 布尔值 | 全局 |
innodb_stats_persistent_sample_pages | 整数 | 全局 |
innodb_stats_transient_sample_pages | 整数 | 全局 |
innodb_status_output | 布尔值 | 全局 |
innodb_status_output_locks | 布尔值 | 全局 |
innodb_strict_mode | 布尔值 | 两者 |
innodb_sync_spin_loops | 整数 | 全局 |
innodb_table_locks | 布尔值 | 两者 |
innodb_thread_concurrency | 整数 | 全局 |
innodb_thread_sleep_delay | 整数 | 全局 |
innodb_tmpdir | 目录名称 | 两者 |
innodb_trx_purge_view_update_only_debug | 布尔值 | 全局 |
innodb_trx_rseg_n_slots_debug | 整数 | 全局 |
innodb_undo_log_encrypt | 布尔值 | 全局 |
innodb_undo_log_truncate | 布尔值 | 全局 |
innodb_undo_tablespaces | 整数 | 全局 |
innodb_use_fdatasync | 布尔值 | 全局 |
insert_id | 整数 | 会话 |
interactive_timeout | 整数 | 两者 |
internal_tmp_disk_storage_engine | 枚举 | 全局 |
internal_tmp_mem_storage_engine | 枚举 | 两者 |
join_buffer_size | 整数 | 两者 |
keep_files_on_create | 布尔值 | 两者 |
key_buffer_size | 整数 | 全局 |
key_cache_age_threshold | 整数 | 全局 |
key_cache_block_size | 整数 | 全局 |
key_cache_division_limit | 整数 | 全局 |
keyring_aws_cmk_id | 字符串 | 全局 |
keyring_aws_region | 枚举 | 全局 |
keyring_encrypted_file_data | 文件名 | 全局 |
keyring_encrypted_file_password | 字符串 | 全局 |
keyring_file_data | 文件名 | 全局 |
keyring_hashicorp_auth_path | 字符串 | 全局 |
keyring_hashicorp_ca_path | 文件名 | 全局 |
keyring_hashicorp_caching | 布尔值 | 全局 |
keyring_hashicorp_role_id | 字符串 | 全局 |
keyring_hashicorp_secret_id | 字符串 | 全局 |
keyring_hashicorp_server_url | 字符串 | 全局 |
keyring_hashicorp_store_path | 字符串 | 全局 |
keyring_okv_conf_dir | 目录名 | 全局 |
keyring_operations | 布尔值 | 全局 |
last_insert_id | 整数 | 会话 |
lc_messages | 字符串 | 两者 |
lc_time_names | 字符串 | 两者 |
local_infile | 布尔值 | 全局 |
lock_wait_timeout | 整数 | 两者 |
log_bin_trust_function_creators | 布尔值 | 全局 |
log_bin_use_v1_row_events | 布尔值 | 全局 |
log_error_services | 字符串 | 全局 |
log_error_suppression_list | 字符串 | 全局 |
log_error_verbosity | 整数 | 全局 |
log_output | 集合 | 全局 |
log_queries_not_using_indexes | 布尔值 | 全局 |
log_raw | 布尔值 | 全局 |
log_slow_admin_statements | 布尔值 | 全局 |
log_slow_extra | 布尔值 | 全局 |
log_slow_replica_statements | 布尔值 | 全局 |
log_slow_slave_statements | 布尔值 | 全局 |
log_statements_unsafe_for_binlog | 布尔值 | 全局 |
log_syslog | 布尔值 | 全局 |
log_syslog_facility | 字符串 | 全局 |
log_syslog_include_pid | 布尔值 | 全局 |
log_syslog_tag | 字符串 | 全局 |
log_throttle_queries_not_using_indexes | 整数 | 全局 |
log_timestamps | 枚举 | 全局 |
long_query_time | 数值 | 两者 |
low_priority_updates | 布尔值 | 两者 |
mandatory_roles | 字符串 | 全局 |
master_info_repository | 字符串 | 全局 |
master_verify_checksum | 布尔值 | 全局 |
max_allowed_packet | 整数 | 两者 |
max_binlog_cache_size | 整数 | 全局 |
max_binlog_size | 整数 | 全局 |
max_binlog_stmt_cache_size | 整数 | 全局 |
max_connect_errors | 整数 | 全局 |
max_connections | 整数 | 全局 |
max_delayed_threads | 整数 | 通用 |
max_error_count | 整数 | 通用 |
max_execution_time | 整数 | 通用 |
max_heap_table_size | 整数 | 通用 |
max_insert_delayed_threads | 整数 | 通用 |
max_join_size | 整数 | 通用 |
max_length_for_sort_data | 整数 | 通用 |
max_points_in_geometry | 整数 | 通用 |
max_prepared_stmt_count | 整数 | 全局 |
max_relay_log_size | 整数 | 全局 |
max_seeks_for_key | 整数 | 通用 |
max_sort_length | 整数 | 通用 |
max_sp_recursion_depth | 整数 | 通用 |
max_user_connections | 整数 | 通用 |
max_write_lock_count | 整数 | 全局 |
min_examined_row_limit | 整数 | 通用 |
myisam_data_pointer_size | 整数 | 全局 |
myisam_max_sort_file_size | 整数 | 全局 |
myisam_repair_threads | 整数 | 通用 |
myisam_sort_buffer_size | 整数 | 通用 |
myisam_stats_method | 枚举 | 通用 |
myisam_use_mmap | 布尔值 | 全局 |
mysql_firewall_mode | 布尔值 | 全局 |
mysql_firewall_trace | 布尔值 | 全局 |
mysql_native_password_proxy_users | 布尔值 | 全局 |
mysqlx_compression_algorithms | 集合 | 全局 |
mysqlx_connect_timeout | 整数 | 全局 |
mysqlx_deflate_default_compression_level | 整数 | 全局 |
mysqlx_deflate_max_client_compression_level | 整数 | 全局 |
mysqlx_document_id_unique_prefix | 整数 | 全局 |
mysqlx_enable_hello_notice | 布尔值 | 全局 |
mysqlx_idle_worker_thread_timeout | 整数 | 全局 |
mysqlx_interactive_timeout | 整数 | 全局 |
mysqlx_lz4_default_compression_level | 整数 | 全局 |
mysqlx_lz4_max_client_compression_level | 整数 | 全局 |
mysqlx_max_allowed_packet | 整数 | 全局 |
mysqlx_max_connections | 整数 | 全局 |
mysqlx_min_worker_threads | 整数 | 全局 |
mysqlx_read_timeout | 整数 | 会话 |
mysqlx_wait_timeout | 整数 | 会话 |
mysqlx_write_timeout | 整数 | 会话 |
mysqlx_zstd_default_compression_level | 整数 | 全局 |
mysqlx_zstd_max_client_compression_level | 整数 | 全局 |
ndb_allow_copying_alter_table | 布尔值 | 两者 |
ndb_autoincrement_prefetch_sz | 整数 | 两者 |
ndb_batch_size | 整数 | 两者 |
ndb_blob_read_batch_bytes | 整数 | 两者 |
ndb_blob_write_batch_bytes | 整数 | 两者 |
ndb_clear_apply_status | 布尔值 | 全局 |
ndb_conflict_role | 枚举 | 全局 |
ndb_data_node_neighbour | 整数 | 全局 |
ndb_dbg_check_shares | 整数 | 两者 |
ndb_default_column_format | 枚举 | 全局 |
ndb_default_column_format | 枚举 | 全局 |
ndb_deferred_constraints | 整数 | 两者 |
ndb_deferred_constraints | 整数 | 两者 |
ndb_distribution | 枚举 | 全局 |
ndb_distribution | 枚举 | 全局 |
ndb_eventbuffer_free_percent | 整数 | 全局 |
ndb_eventbuffer_max_alloc | 整数 | 全局 |
ndb_extra_logging | 整数 | 全局 |
ndb_force_send | 布尔值 | 两者 |
ndb_fully_replicated | 布尔值 | 两者 |
ndb_index_stat_enable | 布尔值 | 两者 |
ndb_index_stat_option | 字符串 | 两者 |
ndb_join_pushdown | 布尔值 | 两者 |
ndb_log_binlog_index | 布尔值 | 全局 |
ndb_log_empty_epochs | 布尔值 | 全局 |
ndb_log_empty_epochs | 布尔值 | 全局 |
ndb_log_empty_update | 布尔值 | 全局 |
ndb_log_empty_update | 布尔值 | 全局 |
ndb_log_exclusive_reads | 布尔值 | 两者 |
ndb_log_exclusive_reads | 布尔值 | 两者 |
ndb_log_transaction_compression | 布尔值 | 全局 |
ndb_log_transaction_compression_level_zstd | 整数 | 全局 |
ndb_log_update_as_write | 布尔值 | 全局 |
ndb_log_update_minimal | 布尔值 | 全局 |
ndb_log_updated_only | 布尔值 | 全局 |
ndb_metadata_check | 布尔值 | 全局 |
ndb_metadata_check_interval | 整数 | 全局 |
ndb_metadata_sync | 布尔值 | 全局 |
ndb_optimization_delay | 整数 | 全局 |
ndb_read_backup | 布尔值 | 全局 |
ndb_recv_thread_activation_threshold | 整数 | 全局 |
ndb_recv_thread_cpu_mask | 位图 | 全局 |
ndb_replica_batch_size | 整数 | 全局 |
ndb_replica_blob_write_batch_bytes | 整数 | 全局 |
ndb_report_thresh_binlog_epoch_slip | 整数 | 全局 |
ndb_report_thresh_binlog_mem_usage | 整数 | 全局 |
ndb_row_checksum | 整数 | 两者 |
ndb_schema_dist_lock_wait_timeout | 整数 | 全局 |
ndb_show_foreign_key_mock_tables | 布尔值 | 全局 |
ndb_slave_conflict_role | 枚举 | 全局 |
ndb_table_no_logging | 布尔值 | 会话 |
ndb_table_temporary | 布尔值 | 会话 |
ndb_use_exact_count | 布尔值 | 两者 |
ndb_use_transactions | 布尔值 | 两者 |
ndbinfo_max_bytes | 整数 | 两者 |
ndbinfo_max_rows | 整数 | 两者 |
ndbinfo_offline | 布尔值 | 全局 |
ndbinfo_show_hidden | 布尔值 | 两者 |
net_buffer_length | 整数 | 两者 |
net_read_timeout | 整数 | 两者 |
net_retry_count | 整数 | 两者 |
net_write_timeout | 整数 | 两者 |
new | 布尔值 | 两者 |
offline_mode | 布尔值 | 全局 |
旧 ALTER TABLE | 布尔值 | 两者 |
优化器修剪级别 | 整数 | 两者 |
优化器搜索深度 | 整数 | 两者 |
优化器开关 | 集合 | 两者 |
优化器跟踪 | 字符串 | 两者 |
优化器跟踪特性 | 字符串 | 两者 |
优化器跟踪限制 | 整数 | 两者 |
优化器跟踪最大内存大小 | 整数 | 两者 |
优化器跟踪偏移量 | 整数 | 两者 |
原始提交时间戳 | 数值 | 会话 |
原始服务器版本 | 整数 | 会话 |
解析器最大内存大小 | 整数 | 两者 |
部分撤销 | 布尔值 | 全局 |
密码历史 | 整数 | 全局 |
密码要求当前 | 布尔值 | 全局 |
密码重用间隔 | 整数 | 全局 |
性能模式最大摘要样本年龄 | 整数 | 全局 |
性能模式显示进程列表 | 布尔值 | 全局 |
预加载缓冲区大小 | 整数 | 两者 |
打印标识为十六进制 | 布尔值 | 两者 |
性能分析 | 布尔值 | 两者 |
性能分析历史大小 | 整数 | 两者 |
协议压缩算法 | 集合 | 全局 |
伪复制模式 | 布尔值 | 会话 |
伪从模式 | 布尔值 | 会话 |
伪线程 ID | 整数 | 会话 |
查询分配块大小 | 整数 | 两者 |
查询预分配大小 | 整数 | 两者 |
随机种子 1 | 整数 | 会话 |
随机种子 2 | 整数 | 会话 |
范围分配块大小 | 整数 | 两者 |
范围优化器最大内存大小 | 整数 | 两者 |
RBR 执行模式 | 枚举 | 会话 |
读取缓冲区大小 | 整数 | 两者 |
只读 | 布尔值 | 全局 |
读取随机缓冲区大小 | 整数 | 两者 |
正则表达式堆栈限制 | 整数 | 全局 |
正则表达式超时限制 | 整数 | 全局 |
中继日志信息存储库 | 字符串 | 全局 |
中继日志清理 | 布尔值 | 全局 |
复制允许批处理 | 布尔值 | 全局 |
复制检查点组 | 整数 | 全局 |
复制检查点周期 | 整数 | 全局 |
复制压缩协议 | 布尔值 | 全局 |
复制执行模式 | 枚举 | 全局 |
复制最大允许数据包大小 | 整数 | 全局 |
复制网络超时 | 整数 | 全局 |
复制并行类型 | 枚举 | 全局 |
复制并行工作者 | 整数 | 全局 |
复制待处理作业最大大小 | 整数 | 全局 |
复制保留提交顺序 | 布尔值 | 全局 |
复制 SQL 验证校验和 | 布尔值 | 全局 |
复制事务重试次数 | 整数 | 全局 |
复制类型转换 | 集合 | 全局 |
复制优化静态插件配置 | 布尔值 | 全局 |
replication_sender_observe_commit_only | 布尔值 | 全局 |
require_row_format | 布尔值 | 会话 |
require_secure_transport | 布尔值 | 全局 |
resultset_metadata | 枚举 | 会话 |
rewriter_enabled | 布尔值 | 全局 |
rewriter_enabled_for_threads_without_privilege_checks | 布尔值 | 全局 |
rewriter_verbose | 整数 | 全局 |
rpl_read_size | 整数 | 全局 |
rpl_semi_sync_master_enabled | 布尔值 | 全局 |
rpl_semi_sync_master_timeout | 整数 | 全局 |
rpl_semi_sync_master_trace_level | 整数 | 全局 |
rpl_semi_sync_master_wait_for_slave_count | 整数 | 全局 |
rpl_semi_sync_master_wait_no_slave | 布尔值 | 全局 |
rpl_semi_sync_master_wait_point | 枚举 | 全局 |
rpl_semi_sync_replica_enabled | 布尔值 | 全局 |
rpl_semi_sync_replica_trace_level | 整数 | 全局 |
rpl_semi_sync_slave_enabled | 布尔值 | 全局 |
rpl_semi_sync_slave_trace_level | 整数 | 全局 |
rpl_semi_sync_source_enabled | 布尔值 | 全局 |
rpl_semi_sync_source_timeout | 整数 | 全局 |
rpl_semi_sync_source_trace_level | 整数 | 全局 |
rpl_semi_sync_source_wait_for_replica_count | 整数 | 全局 |
rpl_semi_sync_source_wait_no_replica | 布尔值 | 全局 |
rpl_semi_sync_source_wait_point | 枚举 | 全局 |
rpl_stop_replica_timeout | 整数 | 全局 |
rpl_stop_slave_timeout | 整数 | 全局 |
schema_definition_cache | 整数 | 全局 |
secondary_engine_cost_threshold | 数值 | 会话 |
select_into_buffer_size | 整数 | 双方 |
select_into_disk_sync | 布尔值 | 双方 |
select_into_disk_sync_delay | 整数 | 双方 |
server_id | 整数 | 全局 |
session_track_gtids | 枚举 | 双方 |
session_track_schema | 布尔值 | 双方 |
session_track_state_change | 布尔值 | 双方 |
session_track_system_variables | 字符串 | 双方 |
session_track_transaction_info | 枚举 | 双方 |
sha256_password_proxy_users | 布尔值 | 全局 |
show_create_table_skip_secondary_engine | 布尔值 | 会话 |
show_create_table_verbosity | 布尔值 | 双方 |
show_gipk_in_create_table_and_information_schema | 布尔值 | 双方 |
show_old_temporals | 布尔值 | 双方 |
slave_allow_batching | 布尔值 | 全局 |
slave_checkpoint_group | 整数 | 全局 |
slave_checkpoint_period | 整数 | 全局 |
slave_compressed_protocol | 布尔值 | 全局 |
slave_exec_mode | 枚举 | 全局 |
slave_max_allowed_packet | 整数 | 全局 |
slave_net_timeout | 整数 | 全局 |
slave_parallel_type | 枚举 | 全局 |
slave_parallel_workers | 整数 | 全局 |
slave_pending_jobs_size_max | 整数 | 全局 |
slave_preserve_commit_order | 布尔值 | 全局 |
slave_rows_search_algorithms | 集合 | 全局 |
slave_sql_verify_checksum | 布尔值 | 全局 |
slave_transaction_retries | 整数 | 全局 |
slave_type_conversions | 集合 | 全局 |
slow_launch_time | 整数 | 全局 |
slow_query_log | 布尔值 | 全局 |
slow_query_log_file | 文件名 | 全局 |
sort_buffer_size | 整数 | 两者 |
source_verify_checksum | 布尔值 | 全局 |
sql_auto_is_null | 布尔值 | 两者 |
sql_big_selects | 布尔值 | 两者 |
sql_buffer_result | 布尔值 | 两者 |
sql_generate_invisible_primary_key | 布尔值 | 两者 |
sql_log_bin | 布尔值 | 会话 |
sql_log_off | 布尔值 | 两者 |
sql_mode | 集合 | 两者 |
sql_notes | 布尔值 | 两者 |
sql_quote_show_create | 布尔值 | 两者 |
sql_replica_skip_counter | 整数 | 全局 |
sql_require_primary_key | 布尔值 | 两者 |
sql_safe_updates | 布尔值 | 两者 |
sql_select_limit | 整数 | 两者 |
sql_slave_skip_counter | 整数 | 全局 |
sql_warnings | 布尔值 | 两者 |
ssl_ca | 文件名 | 全局 |
ssl_capath | 目录名 | 全局 |
ssl_cert | 文件名 | 全局 |
ssl_cipher | 字符串 | 全局 |
ssl_crl | 文件名 | 全局 |
ssl_crlpath | 目录名 | 全局 |
ssl_key | 文件名 | 全局 |
ssl_session_cache_mode | 布尔值 | 全局 |
ssl_session_cache_timeout | 整数 | 全局 |
stored_program_cache | 整数 | 全局 |
stored_program_definition_cache | 整数 | 全局 |
super_read_only | 布尔值 | 全局 |
sync_binlog | 整数 | 全局 |
sync_master_info | 整数 | 全局 |
sync_relay_log | 整数 | 全局 |
sync_relay_log_info | 整数 | 全局 |
sync_source_info | 整数 | 全局 |
syseventlog.facility | 字符串 | 全局 |
syseventlog.include_pid | 布尔值 | 全局 |
syseventlog.tag | 字符串 | 全局 |
table_definition_cache | 整数 | 全局 |
table_encryption_privilege_check | 布尔值 | 全局 |
table_open_cache | 整数 | 全局 |
tablespace_definition_cache | 整数 | 全局 |
temptable_max_mmap | 整数 | 全局 |
temptable_max_ram | 整数 | 全局 |
temptable_use_mmap | 布尔值 | 全局 |
terminology_use_previous | 枚举 | 两者 |
thread_cache_size | 整数 | 全局 |
thread_pool_high_priority_connection | 整数 | 两者 |
thread_pool_max_active_query_threads | 整数 | 全局 |
thread_pool_max_transactions_limit | 整数 | 全局 |
thread_pool_max_unused_threads | 整数 | 全局 |
thread_pool_prio_kickup_timer | 整数 | 全局 |
thread_pool_query_threads_per_group | 整数 | 全局 |
thread_pool_stall_limit | 整数 | 全局 |
thread_pool_transaction_delay | 整数 | 全局 |
time_zone | 字符串 | 全局 |
timestamp | 数值 | 会话 |
tls_ciphersuites | 字符串 | 全局 |
tls_version | 字符串 | 全局 |
tmp_table_size | 整数 | 全局 |
transaction_alloc_block_size | 整数 | 全局 |
transaction_allow_batching | 布尔值 | 会话 |
transaction_isolation | 枚举 | 全局 |
transaction_prealloc_size | 整数 | 全局 |
transaction_read_only | 布尔值 | 全局 |
transaction_write_set_extraction | 枚举 | 全局 |
unique_checks | 布尔值 | 全局 |
updatable_views_with_limit | 布尔值 | 全局 |
use_secondary_engine | 枚举 | 会话 |
validate_password_check_user_name | 布尔值 | 全局 |
validate_password_dictionary_file | 文件名 | 全局 |
validate_password_length | 整数 | 全局 |
validate_password_mixed_case_count | 整数 | 全局 |
validate_password_number_count | 整数 | 全局 |
validate_password_policy | 枚举 | 全局 |
validate_password_special_char_count | 整数 | 全局 |
validate_password.changed_characters_percentage | 整数 | 全局 |
validate_password.check_user_name | 布尔值 | 全局 |
validate_password.dictionary_file | 文件名 | 全局 |
validate_password.length | 整数 | 全局 |
validate_password.mixed_case_count | 整数 | 全局 |
validate_password.number_count | 整数 | 全局 |
validate_password.policy | 枚举 | 全局 |
validate_password.special_char_count | 整数 | 全局 |
version_tokens_session | 字符串 | 两者 |
wait_timeout | 整数 | 两者 |
windowing_use_high_precision | 布尔值 | 两者 |
xa_detach_on_prepare | 布尔值 | 两者 |
变量名称 | 变量类型 | 变量范围 |
原文:
dev.mysql.com/doc/refman/8.0/en/persisted-system-variables.html
7.1.9.3 持久化系统变量
MySQL 服务器维护配置其操作的系统变量。系统变量可以具有影响整个服务器操作的全局值,影响当前会话的会话值,或两者都有。许多系统变量是动态的,可以使用SET
语句在运行时更改,以影响当前服务器实例的操作。SET
也可以用于将某些全局系统变量持久化到数据目录中的mysqld-auto.cnf
文件中,以影响后续启动时的服务器操作。RESET PERSIST
会从mysqld-auto.cnf
中删除持久化的设置。
以下讨论描述了持久化系统变量的方面:
-
持久化系统变量概述
-
持久化系统变量的语法
-
获取有关持久化系统变量的信息
-
mysqld-auto.cnf 文件的格式和服务器处理方式
-
持久化敏感系统变量
持久化系统变量概述
在运行时持久化全局系统变量的能力使得服务器配置可以持续跨越服务器启动。尽管许多系统变量可以在启动时从my.cnf
选项文件设置,或者使用SET
语句在运行时设置,但这些配置服务器的方法要么需要登录到服务器主机,要么不能提供在运行时或远程持久配置服务器的能力:
-
修改选项文件需要直接访问该文件,这需要登录到 MySQL 服务器主机。这并不总是方便的。
-
使用
SET GLOBAL
修改系统变量是一种运行时功能,可以从本地运行的客户端或远程主机执行,但更改仅影响当前运行的服务器实例。这些设置不是持久的,也不会传递到后续的服务器启动。
为了增强服务器配置的管理能力,超出了通过编辑选项文件或使用SET GLOBAL
所能实现的范围,MySQL 提供了SET
语法的变体,将系统变量设置持久化到名为mysqld-auto.cnf
的文件中。示例:
SET PERSIST max_connections = 1000;
SET @@PERSIST.max_connections = 1000;
SET PERSIST_ONLY back_log = 100;
SET @@PERSIST_ONLY.back_log = 100;
MySQL 还提供了一个RESET PERSIST
语句,用于从mysqld-auto.cnf
中删除持久化的系统变量。
通过持久化系统变量执行的服务器配置具有以下特点:
-
持久化设置是在运行时进行的。
-
持久化设置是永久的。它们在服务器重新启动时生效。
-
持久化设置可以来自本地客户端或从远程主机连接的客户端。这提供了从中央客户端主机远程配置多个 MySQL 服务器的便利。
-
要持久化系统变量,您无需登录 MySQL 服务器主机或具有选项文件的文件系统访问权限。持久化设置的能力是通过 MySQL 权限系统控制的。请参见 Section 7.1.9.1, “系统变量权限”。
-
拥有足够权限的管理员可以通过持久化系统变量重新配置服务器,然后通过执行
RESTART
语句立即使服务器使用更改后的设置。 -
持久化设置提供有关错误的即时反馈。手动输入设置中的错误可能要到很久之后才能发现。持久化系统变量的
SET
语句避免了设置格式错误的可能性,因为具有语法错误的设置不会成功,也不会更改服务器配置。
持久化系统变量的语法
这些SET
语法选项可用于持久化系统变量:
-
要将全局系统变量持久化到数据目录中的
mysqld-auto.cnf
选项文件中,需在变量名之前加上PERSIST
关键字或@@PERSIST.
限定符:SET PERSIST max_connections = 1000; SET @@PERSIST.max_connections = 1000;
与
SET GLOBAL
类似,SET PERSIST
设置全局变量的运行时值,但也将变量设置写入mysqld-auto.cnf
文件(如果存在任何现有变量设置,则会替换它)。 -
要将全局系统变量持久化到
mysqld-auto.cnf
文件中,而不设置全局变量运行时值,需在变量名之前加上PERSIST_ONLY
关键字或@@PERSIST_ONLY.
限定符:SET PERSIST_ONLY back_log = 1000; SET @@PERSIST_ONLY.back_log = 1000;
与
PERSIST
类似,PERSIST_ONLY
将变量设置写入mysqld-auto.cnf
。但是,与PERSIST
不同,PERSIST_ONLY
不会修改全局变量的运行时值。这使得PERSIST_ONLY
适用于配置只能在服务器启动时设置的只读系统变量。
有关 SET
的更多信息,请参阅 Section 15.7.6.1, “SET Syntax for Variable Assignment”。
这些 RESET PERSIST
语法选项可用于移除持久化系统变量:
-
要从
mysqld-auto.cnf
中删除所有持久化变量,请使用RESET PERSIST
而不命名任何系统变量:RESET PERSIST;
-
要从
mysqld-auto.cnf
中删除特定的持久化变量,请在语句中命名它:RESET PERSIST *system_var_name*;
这包括插件系统变量,即使插件当前未安装。如果变量不存在于文件中,则会发生错误。
-
要从
mysqld-auto.cnf
中删除特定的持久化变量,但如果变量不存在于文件中则产生警告而不是错误,请在先前的语法中添加IF EXISTS
子句:RESET PERSIST IF EXISTS *system_var_name*;
有关 RESET PERSIST
的更多信息,请参阅 Section 15.7.8.7, “RESET PERSIST Statement”。
使用 SET
将全局系统变量持久化为 DEFAULT
值或其字面默认值会将变量分配为其默认值,并向 mysqld-auto.cnf
添加变量设置。要从文件中删除变量,请使用 RESET PERSIST
。
一些系统变量无法持久化。请参阅 Section 7.1.9.4, “Nonpersistible and Persist-Restricted System Variables”。
如果插件在执行 SET
语句时已安装,则插件实现的系统变量可以持久化。如果插件仍然安装,则持久化插件变量的分配将在后续服务器重新启动时生效。如果插件不再安装,则当服务器读取 mysqld-auto.cnf
文件时插件变量不存在。在这种情况下,服务器会向错误日志写入警告并继续:
currently unknown variable '*var_name*'
was read from the persisted config file
获取有关持久化系统变量的信息
Performance Schema persisted_variables
表提供了对 mysqld-auto.cnf
文件的 SQL 接口,使得可以使用 SELECT
语句在运行时检查其内容。参见 Section 29.12.14.1, “Performance Schema persisted_variables Table”。
Performance Schema variables_info
表包含了显示每个系统变量最近由哪个用户何时设置的信息。参见 Section 29.12.14.2, “Performance Schema variables_info Table”。
RESET PERSIST
会影响 persisted_variables
表的内容,因为表内容对应于 mysqld-auto.cnf
文件的内容。另一方面,因为 RESET PERSIST
不会更改变量值,所以在服务器重新启动之前,它不会对 variables_info
表的内容产生影响。
mysqld-auto.cnf
文件的格式和服务器处理
mysqld-auto.cnf
文件使用类似以下的 JSON
格式(稍作整理以提高可读性):
{
"Version": 1,
"mysql_server": {
"max_connections": {
"Value": "152",
"Metadata": {
"Timestamp": 1519921341372531,
"User": "root",
"Host": "localhost"
}
},
"transaction_isolation": {
"Value": "READ-COMMITTED",
"Metadata": {
"Timestamp": 1519921553880520,
"User": "root",
"Host": "localhost"
}
},
"mysql_server_static_options": {
"innodb_api_enable_mdl": {
"Value": "0",
"Metadata": {
"Timestamp": 1519922873467872,
"User": "root",
"Host": "localhost"
}
},
"log_slave_updates": {
"Value": "1",
"Metadata": {
"Timestamp": 1519925628441588,
"User": "root",
"Host": "localhost"
}
}
}
}
}
在启动时,服务器在处理所有其他选项文件之后处理 mysqld-auto.cnf
文件(参见 Section 6.2.2.2, “使用选项文件”)。服务器处理文件内容如下:
-
如果
persisted_globals_load
系统变量已禁用,则服务器会忽略mysqld-auto.cnf
文件。 -
"mysql_server_static_options"
部分包含使用SET PERSIST_ONLY
持久化的只读变量。该部分也可能(尽管其名称如此)包含某些不是只读的动态变量。此部分中的所有变量都会附加��命令行并与其他命令行选项一起处理。 -
所有剩余的持久化变量都是通过在服务器开始监听客户端连接之前执行等效的
SET GLOBAL
语句来设置的。因此,这些设置直到启动过程的后期才会生效,这对于某些系统变量可能不太合适。在my.cnf
而不是mysqld-auto.cnf
中设置这些变量可能更可取。
mysqld-auto.cnf
文件的管理应留给服务器处理。文件的操作应仅使用SET
和RESET PERSIST
语句执行,而不是手动操作:
-
删除文件会导致在下次服务器启动时丢失所有持久化设置。(如果您的意图是重新配置服务器而不需要这些设置,则可以这样做。)要删除文件中的所有设置而不删除文件本身,请使用以下语句:
RESET PERSIST;
-
对文件的手动更改可能会导致服务器启动时出现解析错误。在这种情况下,服务器会报告错误并退出。如果出现此问题,请使用
persisted_globals_load
系统变量禁用或使用--no-defaults
选项启动服务器。或者,删除mysqld-auto.cnf
文件。但是,如前所述,删除此文件会导致所有持久化设置丢失。
持久化敏感系统变量
从 MySQL 8.0.29 开始,MySQL 服务器具有安全存储包含私钥或密码等敏感数据的持久化系统变量值的能力,并限制查看这些值。目前没有 MySQL 服务器系统变量被标记为敏感,但新功能允许将包含敏感数据的系统变量在未来安全地持久化。升级到 MySQL 8.0.29 后,mysqld-auto.cnf
选项文件的格式保持不变,直到首次发出SET PERSIST
或SET PERSIST ONLY
语句,此时即使涉及的系统变量不敏感,也会更改为新格式。在新格式中,即使涉及的系统变量不敏感,旧版本的 MySQL 服务器也无法读取选项文件。
注意
MySQL 服务器实例必须启用一个密钥环组件,以支持对持久化系统变量值进行安全存储,而不是使用不支持此功能的密钥环插件。请参阅第 8.4.4 节,“MySQL 密钥环”。
在mysqld-auto.cnf
选项文件中,敏感系统变量的名称和值以加密格式存储,同时还有一个生成的文件密钥用于解密它们。生成的文件密钥又使用一个存储在密钥环中的主密钥(persisted_variables_key
)进行加密。服务器启动时,持久化的敏感系统变量会被解密并使用。默认情况下,如果选项文件中存在加密值但在启动时无法成功解密,将使用它们的默认设置。可选的最安全设置会使服务器在无法解密加密值时停止启动。
系统变量persist_sensitive_variables_in_plaintext
控制服务器是否允许以未加密格式存储敏感系统变量的值,如果在使用SET PERSIST
设置值时,此时不支持密钥环组件。它还控制服务器是否可以在无法解密加密值时启动。
-
默认设置为
ON
,如果支持密钥环组件,则对值进行加密,并在不支持时以未加密方式持久化(附带警告)。下次设置任何持久化的系统变量时,如果此时支持密钥环,则服务器会加密任何未加密的敏感系统变量的值。ON
设置还允许服务器在无法解密加密的系统变量值时启动,此时会发出警告并使用系统变量的默认值。在这种情况下,直到可以解密为止,它们的值不能被更改。 -
最安全的设置为
OFF
,意味着如果密钥环组件支持不可用,则敏感系统变量值无法持久化。OFF
设置还意味着如果无法解密加密的系统变量值,则服务器不会启动。
特权SENSITIVE_VARIABLES_OBSERVER
允许持有者查看性能模式表global_variables
、session_variables
、variables_by_thread
和persisted_variables
中敏感系统变量的值,发出SELECT
语句返回它们的值,并在会话跟踪器中跟踪对它们的更改。没有此特权的用户无法查看或跟踪这些系统变量的值。
如果对敏感系统变量发出SET
语句,则在记录到一般日志和审计日志之前,查询会被重写以将值替换为“<redacted>
”。即使服务器实例上没有通过密钥环组件进行安全存储,也会发生这种情况。
原文:
dev.mysql.com/doc/refman/8.0/en/nonpersistible-system-variables.html
7.1.9.4 不可持久化和受持久化限制的系统变量
SET PERSIST
和 SET PERSIST_ONLY
允许全局系统变量被持久化到数据目录中的 mysqld-auto.cnf
选项文件中(参见 Section 15.7.6.1, “变量赋值的 SET 语法”)。然而,并非所有系统变量都可以被持久化,或者只能在某些限制条件下被持久化。以下是系统变量可能为不可持久化或受持久化限制的一些原因:
-
会话系统变量无法被持久化。会话变量无法在服务器启动时设置,因此没有理由将它们持久化。
-
全局系统变量可能涉及敏感数据,因此只能由直接访问服务器主机的用户设置。
-
全局系统变量可能是只读的(即只能由服务器设置)。在这种情况下,无论是在服务器启动时还是在运行时,用户都无法设置它。
-
全局系统变量可能仅供内部使用。
不可持久化的系统变量无论如何都不能被持久化。从 MySQL 8.0.14 开始,受持久化限制的系统变量可以通过 SET PERSIST_ONLY
被持久化,但只能由满足以下条件的用户进行:
-
persist_only_admin_x509_subject
系统变量设置为 SSL 证书 X.509 主题值。 -
用户使用加密连接连接到服务器,并提供具有指定主题值的 SSL 证书。
-
用户具有足够的权限使用
SET PERSIST_ONLY
(参见 Section 7.1.9.1, “系统变量权限”)。
例如,protocol_version
是只读的,只能由服务器设置,因此无论如何都不能持久化。另一方面,bind_address
是受持久化限制的,因此只有符合前述条件的用户才能设置它。
以下系统变量是不可持久化的。此列表可能会随着持续开发而更改。
audit_log_current_session
audit_log_filter_id
caching_sha2_password_digest_rounds
character_set_system
core_file
have_statement_timeout
have_symlink
hostname
innodb_version
keyring_hashicorp_auth_path
keyring_hashicorp_ca_path
keyring_hashicorp_caching
keyring_hashicorp_commit_auth_path
keyring_hashicorp_commit_ca_path
keyring_hashicorp_commit_caching
keyring_hashicorp_commit_role_id
keyring_hashicorp_commit_server_url
keyring_hashicorp_commit_store_path
keyring_hashicorp_role_id
keyring_hashicorp_secret_id
keyring_hashicorp_server_url
keyring_hashicorp_store_path
large_files_support
large_page_size
license
locked_in_memory
log_bin
log_bin_basename
log_bin_index
lower_case_file_system
ndb_version
ndb_version_string
persist_only_admin_x509_subject
persisted_globals_load
protocol_version
relay_log_basename
relay_log_index
server_uuid
skip_external_locking
system_time_zone
version_comment
version_compile_machine
version_compile_os
version_compile_zlib
受限制的持久化系统变量是那些只读的变量,可以在命令行或选项文件中设置,除了persist_only_admin_x509_subject
和persisted_globals_load
之外。此列表可能会随着持续开发而更改。
audit_log_file
audit_log_format
auto_generate_certs
basedir
bind_address
caching_sha2_password_auto_generate_rsa_keys
caching_sha2_password_private_key_path
caching_sha2_password_public_key_path
character_sets_dir
daemon_memcached_engine_lib_name
daemon_memcached_engine_lib_path
daemon_memcached_option
datadir
default_authentication_plugin
ft_stopword_file
init_file
innodb_buffer_pool_load_at_startup
innodb_data_file_path
innodb_data_home_dir
innodb_dedicated_server
innodb_directories
innodb_force_load_corrupted
innodb_log_group_home_dir
innodb_page_size
innodb_read_only
innodb_temp_data_file_path
innodb_temp_tablespaces_dir
innodb_undo_directory
innodb_undo_tablespaces
keyring_encrypted_file_data
keyring_encrypted_file_password
lc_messages_dir
log_error
mecab_rc_file
named_pipe
pid_file
plugin_dir
port
relay_log
relay_log_info_file
replica_load_tmpdir
secure_file_priv
sha256_password_auto_generate_rsa_keys
sha256_password_private_key_path
sha256_password_public_key_path
shared_memory
shared_memory_base_name
skip_networking
slave_load_tmpdir
socket
ssl_ca
ssl_capath
ssl_cert
ssl_crl
ssl_crlpath
ssl_key
tmpdir
version_tokens_session_number
要配置服务器以启用持久化受限制的系统变量,请使用以下步骤:
-
确保 MySQL 配置支持加密连接。参见第 8.3.1 节,“配置 MySQL 使用加密连接”。
-
指定一个 SSL 证书 X.509 主题值,表示能够持久化受限制的系统变量,并生成具有该主题的证书。参见第 8.3.3 节,“创建 SSL 和 RSA 证书和密钥”。
-
启动服务器时,将
persist_only_admin_x509_subject
设置为指定的主题值。例如,在服务器的my.cnf
文件中添加以下行:[mysqld] persist_only_admin_x509_subject="*subject-value*"
主题值的格式与用于
CREATE USER ... REQUIRE SUBJECT
相同。参见第 15.7.1.3 节,“CREATE USER Statement”。您必须直接在 MySQL 服务器主机上执行此步骤,因为
persist_only_admin_x509_subject
本身无法在运行时持久化。 -
重新启动服务器。
-
将具有指定主题值的 SSL 证书分发给被允许持久化受限制系统变量的用户。
假设myclient-cert.pem
是要供客户端使用的 SSL 证书,该证书可以持久化受限制的系统变量。使用openssl命令显示证书内容:
$> openssl x509 -text -in myclient-cert.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 2 (0x2)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US, ST=IL, L=Chicago, O=MyOrg, OU=CA, CN=MyCN
Validity
Not Before: Oct 18 17:03:03 2018 GMT
Not After : Oct 15 17:03:03 2028 GMT
Subject: C=US, ST=IL, L=Chicago, O=MyOrg, OU=client, CN=MyCN
...
openssl输出显示证书主题值为:
C=US, ST=IL, L=Chicago, O=MyOrg, OU=client, CN=MyCN
要为 MySQL 指定主题,使用以下格式:
/C=US/ST=IL/L=Chicago/O=MyOrg/OU=client/CN=MyCN
在服务器的my.cnf
文件中配置主题值:
[mysqld]
persist_only_admin_x509_subject="/C=US/ST=IL/L=Chicago/O=MyOrg/OU=client/CN=MyCN"
重新启动服务器以使新配置生效。
将 SSL 证书(以及任何其他相关 SSL 文件)分发给适当的用户。然后,此用户使用证书和建立加密连接所需的任何其他 SSL 选项连接到服务器。
要使用 X.509,客户端必须指定--ssl-key
和--ssl-cert
选项进行连接。建议但不是必须还指定--ssl-ca
,以便验证服务器提供的公共证书。例如:
$> mysql --ssl-key=myclient-key.pem --ssl-cert=myclient-cert.pem --ssl-ca=mycacert.pem
假设用户具有足够的特权来使用SET PERSIST_ONLY
,则可以像这样持久化受限制的系统变量:
mysql> SET PERSIST_ONLY socket = '/tmp/mysql.sock';
Query OK, 0 rows affected (0.00 sec)
如果服务器未配置为启用持久化受限制系统变量,或用户不满足该功能所需的条件,则会发生错误:
mysql> SET PERSIST_ONLY socket = '/tmp/mysql.sock';
ERROR 1238 (HY000): Variable 'socket' is a non persistent read only variable
原文:
dev.mysql.com/doc/refman/8.0/en/structured-system-variables.html
7.1.9.5 结构化系统变量
结构化变量在两个方面与常规系统变量不同:
-
其值是一个具有指定为密切相关的服务器参数的组件的结构。
-
可能会有几个给定类型的结构化变量实例。每个实例都有一个不同的名称,并引用服务器维护的不同资源。
MySQL 支持一种结构化变量类型,用于指定管理关键缓存操作的参数。关键缓存结构化变量具有以下组件:
-
key_buffer_size
-
key_cache_block_size
-
key_cache_division_limit
-
key_cache_age_threshold
本节描述了引用结构化变量的语法。关键缓存变量用于语法示例,但关于关键缓存如何运作的具体细节可以在其他地方找到,在第 10.10.2 节,“MyISAM 关键缓存”中。
要引用结构化变量实例的组件,可以使用*instance_name.component_name
*格式的复合名称。例如:
hot_cache.key_buffer_size
hot_cache.key_cache_block_size
cold_cache.key_cache_block_size
对于每个结构化系统变量,名称为default
的实例始终预定义。如果您引用结构化变量的组件而没有任何实例名称,则使用default
实例。因此,default.key_buffer_size
和key_buffer_size
都引用同一系统变量。
结构化变量实例和组件遵循以下命名规则:
-
对于给定类型的结构化变量,每个实例的名称必须在该类型的变量中是唯一的。但是,实例名称在结构化变量类型之间不需要是唯一的。例如,每个结构化变量都有一个名为
default
的实例,因此default
在变量类型之间不是唯一的。 -
每种结构化变量类型的组件名称必须在所有系统变量名称中是唯一的。如果不是这样(也就是说,如果两种不同类型的结构化变量可以共享组件成员名称),那么对于未由实例名称限定的成员名称的引用将不清楚使用哪个默认结构化变量。
-
如果结构化变量实例名称作为未引用的标识符不合法,则使用反引号引用它作为引用标识符。例如,
hot-cache
不合法,但hot-cache
是。 -
global
、session
和local
不是合法的实例名称。这避免了与诸如@@GLOBAL.*
var_name*
之类的表示非结构化系统变量的符号发生冲突。
目前,前两条规则不可能被违反,因为唯一的结构化变量类型是键缓存类型。如果将来创建其他类型的结构化变量,则这些规则可能变得更加重要。
除了一个例外情况外,在任何简单变量名可以出现的上下文中,您都可以使用复合名称引用结构化变量组件。例如,您可以使用命令行选项为结构化变量赋值:
$> mysqld --hot_cache.key_buffer_size=64K
在选项文件中,请使用以下语法:
[mysqld]
hot_cache.key_buffer_size=64K
如果您使用此选项启动服务器,则会创建一个名为hot_cache
的键缓存,大小为 64KB,另外还会创建一个默认大小为 8MB 的默认键缓存。
假设您以以下方式启动服务器:
$> mysqld --key_buffer_size=256K \
--extra_cache.key_buffer_size=128K \
--extra_cache.key_cache_block_size=2048
在这种情况下,服务器将默认键缓存的大小设置为 256KB。(您也可以编写--default.key_buffer_size=256K
。)此外,服务器还会创建一个名为extra_cache
的第二个键缓存,其大小为 128KB,用于缓存表索引块的块缓冲区大小设置为 2048 字节。
以下示例启动具有 3:1:1 比例大小的三个不同键缓存的服务器:
$> mysqld --key_buffer_size=6M \
--hot_cache.key_buffer_size=2M \
--cold_cache.key_buffer_size=2M
结构化变量值也可以在运行时设置和检索。例如,要将名为hot_cache
的键缓存设置为 10MB 的大小,请使用以下任一语句:
mysql> SET GLOBAL hot_cache.key_buffer_size = 10*1024*1024;
mysql> SET @@GLOBAL.hot_cache.key_buffer_size = 10*1024*1024;
要检索缓存大小,请执行以下操作:
mysql> SELECT @@GLOBAL.hot_cache.key_buffer_size;
但是,以下语句不起作用。该变量不被解释为复合名称,而是被解释为用于LIKE
模式匹配操作的简单字符串:
mysql> SHOW GLOBAL VARIABLES LIKE 'hot_cache.key_buffer_size';
这是能够在简单变量名出现的任何地方使用结构化变量名的例外情况。
7.1.10 服务器状态变量
原文:
dev.mysql.com/doc/refman/8.0/en/server-status-variables.html
MySQL 服务器维护许多状态变量,提供有关其操作的信息。您可以通过使用SHOW [GLOBAL | SESSION] STATUS
语句(参见第 15.7.7.37 节,“SHOW STATUS 语句”)查看这些变量及其值。可选的GLOBAL
关键字聚合所有连接的值,SESSION
显示当前连接的值。
mysql> SHOW GLOBAL STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
...
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 3 |
| Created_tmp_tables | 2 |
...
| Threads_created | 217 |
| Threads_running | 88 |
| Uptime | 1389872 |
+-----------------------------------+------------+
许多状态变量通过FLUSH STATUS
语句重置为 0。
本节提供了每个状态变量的描述。有关状态变量摘要,请参见第 7.1.6 节,“服务器状态变量参考”。有关特定于 NDB 集群的状态变量信息,请参见第 25.4.3.9.3 节,“NDB 集群状态变量”。
状态变量具有以下含义。
-
Aborted_clients
连接由于客户端异常关闭连接而中止的次数。请参见第 B.3.2.9 节,“通信错误和中止连接”。
-
Aborted_connects
尝试连接到 MySQL 服务器失败的次数。请参见第 B.3.2.9 节,“通信错误和中止连接”。
要获取更多与连接相关的信息,请查看
Connection_errors_*
xxx*
状态变量和host_cache
表。 -
Authentication_ldap_sasl_supported_methods
实现 SASL LDAP 身份验证的
authentication_ldap_sasl
插件支持多种身份验证方法,但根据主机系统配置的不同,它们可能并非全部可用。Authentication_ldap_sasl_supported_methods
变量提供了支持的方法的可发现性。其值是由支持的方法名称以空格分隔的字符串。例如:“SCRAM-SHA 1 SCRAM-SHA-256 GSSAPI”此变量已添加到 MySQL 8.0.21 中。
-
Binlog_cache_disk_use
使用临时二进制日志缓存的事务数量,但超过了
binlog_cache_size
的值,并使用临时文件存储事务中的语句。导致二进制日志事务缓存写入磁盘的非事务语句的数量在
Binlog_stmt_cache_disk_use
状态变量中单独跟踪。 -
Acl_cache_items_count
缓存的权限对象数量。每个对象是用户及其活动角色的权限组合。
-
Binlog_cache_use
使用二进制日志缓存的事务数量。
-
Binlog_stmt_cache_disk_use
使用二进制日志语句缓存的非事务语句的数量,但超过了
binlog_stmt_cache_size
的值,并使用临时文件存储这些语句。 -
Binlog_stmt_cache_use
使用二进制日志语句缓存的非事务语句的数量。
-
Bytes_received
从所有客户端接收的字节数。
-
Bytes_sent
发送给所有客户端的字节数。
-
Caching_sha2_password_rsa_public_key
caching_sha2_password
身份验证插件用于 RSA 密钥对密码交换的公钥。仅当服务器成功初始化由caching_sha2_password_private_key_path
和caching_sha2_password_public_key_path
系统变量命名的文件中的私钥和公钥时,该值才不为空。Caching_sha2_password_rsa_public_key
的值来自后者的文件。 -
Com_*
xxx*
Com_*
xxx*
语句计数变量指示每个*xxx
*语句已执行的次数。每种类型的语句都有一个状态变量。例如,Com_delete
和Com_update
分别计算DELETE
和UPDATE
语句的次数。Com_delete_multi
和Com_update_multi
类似,但适用于使用多表语法的DELETE
和UPDATE
语句。所有
Com_stmt_*
xxx*
变量都会增加,即使准备语句参数未知或在执行过程中发生错误。换句话说,它们的值对应于发出的请求次数,而不是成功完成的请求次数。例如,因为状态变量在每次服务器启动时都会初始化,并且不会在重新启动时保留,跟踪RESTART
和SHUTDOWN
语句的Com_restart
和Com_shutdown
变量通常值为零,但如果执行了但失败了RESTART
或SHUTDOWN
语句,则可以为非零。Com_stmt_*
xxx*
状态变量如下:-
Com_stmt_prepare
-
Com_stmt_execute
-
Com_stmt_fetch
-
Com_stmt_send_long_data
-
Com_stmt_reset
-
Com_stmt_close
这些变量代表准备语句命令。它们的名称指的是在网络层中使用的
COM_*
xxx*
命令集。换句话说,每当执行准备语句 API 调用,如mysql_stmt_prepare()、**mysql_stmt_execute()**等时,它们的值会增加。然而,Com_stmt_prepare
、Com_stmt_execute
和Com_stmt_close
也会分别增加PREPARE
、EXECUTE
或DEALLOCATE PREPARE
。此外,旧的语句计数变量Com_prepare_sql
、Com_execute_sql
和Com_dealloc_sql
的值也会增加PREPARE
、EXECUTE
和DEALLOCATE PREPARE
语句。Com_stmt_fetch
代表从游标中获取时发出的网络往返总数。Com_stmt_reprepare
表示服务器自动重新准备语句的次数,例如,在语句引用的表或视图的元数据更改后。重新准备操作会增加Com_stmt_reprepare
,也会增加Com_stmt_prepare
。Com_explain_other
表示执行的EXPLAIN FOR CONNECTION
语句的数量。请参阅第 10.8.4 节,“获取命名连接的执行计划信息”。Com_change_repl_filter
表示执行的CHANGE REPLICATION FILTER
语句的数量。 -
-
压缩
客户端连接是否在客户端/服务器协议中使用压缩。
截至 MySQL 8.0.18,此状态变量已弃用;预计将在未来的 MySQL 版本中移除。请参阅 Configuring Legacy Connection Compression。
-
Compression_algorithm
当前连接到服务器的压缩算法的名称。该值可以是
protocol_compression_algorithms
系统变量值中允许的任何算法。例如,如果连接不使用压缩,则值为uncompressed
,如果连接使用zlib
算法,则值为zlib
。欲了解更多信息,请参阅 Section 6.2.8, “Connection Compression Control”。
该变量在 MySQL 8.0.18 中添加。
-
Compression_level
当前连接到服务器的压缩级别。对于
zlib
连接,该值为 6(默认zlib
算法压缩级别),对于zstd
连接,该值为 1 到 22,对于uncompressed
连接,该值为 0。欲了解更多信息,请参阅 Section 6.2.8, “Connection Compression Control”。
该变量在 MySQL 8.0.18 中添加。
-
Connection_errors_*
xxx*
这些变量提供有关客户端连接过程中发生的错误的信息。它们仅为全局变量,代表来自所有主机的连接中聚合的错误计数。这些变量跟踪主机缓存未解决的错误(请参阅 Section 7.1.12.3, “DNS Lookups and the Host Cache”),例如与 TCP 连接无关的错误,在连接过程的早期阶段发生的错误(甚至在知道 IP 地址之前),或者不特定于任何特定 IP 地址的错误(例如内存不足条件)。
-
Connection_errors_accept
在监听端口调用
accept()
时发生的错误次数。 -
Connection_errors_internal
由于服务器内部错误(例如无法启动新线程或内存不足)而拒绝的连接数。
-
Connection_errors_max_connections
由于达到服务器
max_connections
限制而拒绝的连接数。 -
Connection_errors_peer_address
在搜索连接客户端 IP 地址时发生的错误数量。
-
Connection_errors_select
在监听端口上调用
select()
或poll()
时发生的错误数量。(此操作的失败并不一定意味着客户端连接被拒绝。) -
Connection_errors_tcpwrap
libwrap
库拒绝的连接数量。
-
-
Connections
尝试连接到 MySQL 服务器的连接尝试次数(成功或不成功)。
-
Created_tmp_disk_tables
服务器在执行语句时创建的内部磁盘临时表的数量。
您可以通过比较
Created_tmp_disk_tables
和Created_tmp_tables
的值来比较创建的内部磁盘临时表的数量和创建的内部临时表的总数。注意
由于已知限制,
Created_tmp_disk_tables
不计算在内存映射文件中创建的磁盘临时表。默认情况下,TempTable 存储引擎溢出机制在内存映射文件中创建内部临时表。此行为由temptable_use_mmap
变量控制,默认情况下启用。另请参阅第 10.4.4 节,“MySQL 中的内部临时表使用”。
-
Created_tmp_files
mysqld创建的临时文件数量。
-
Created_tmp_tables
服务器在执行语句时创建的内部临时表的数量。
您可以通过比较
Created_tmp_disk_tables
和Created_tmp_tables
的值来比较创建的内部磁盘临时表的数量和创建的内部临时表的总数。另请参阅第 10.4.4 节,“MySQL 中的内部临时表使用”。
每次调用
SHOW STATUS
语句都会使用一个内部临时表,并增加全局Created_tmp_tables
值。 -
Current_tls_ca
服务器在新连接中使用的 SSL 上下文中的活动
ssl_ca
值。如果系统变量已更改但尚未执行ALTER INSTANCE RELOAD TLS
以从与上下文相关的系统变量值重新配置 SSL 上下文并更新相应的状态变量,则此上下文值可能与当前ssl_ca
系统变量值不同。(这些值之间的潜在差异适用于每个对应的上下文相关系统和状态变量对。请参阅用于加密连接的服务器端运行时配置和监控。)这个变量是在 MySQL 8.0.16 中添加的。
截至 MySQL 8.0.21,
Current_tls_*
xxx*
状态变量值也可以通过性能模式tls_channel_status
表获得。请参阅第 29.12.21.9 节,“tls_channel_status 表”。 -
Current_tls_capath
服务器在新连接中使用的 TLS 上下文中的活动
ssl_capath
值。关于此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。这个变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_cert
服务器在新连接中使用的 TLS 上下文中的活动
ssl_cert
值。关于此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。这个变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_cipher
服务器在新连接中使用的 TLS 上下文中的活动
ssl_cipher
值。关于此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。这个变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_ciphersuites
服务器在新连接中使用的 TLS 上下文中的活动
tls_ciphersuites
值。有关此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。该变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_crl
服务器在新连接中使用的 TLS 上下文中的活动
ssl_crl
值。有关此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。该变量是在 MySQL 8.0.16 中添加的。
注意
当重新加载 TLS 上下文时,OpenSSL 会在此过程中重新加载包含 CRL(证书吊销列表)的文件。如果 CRL 文件很大,服务器会分配一个大块内存(文件大小的十倍),在新实例加载时会加倍,而旧实例尚未释放。大量分配被释放后,进程驻留内存不会立即减少,因此如果你重复发出带有大型 CRL 文件的
ALTER INSTANCE RELOAD TLS
语句,进程驻留内存使用量可能会因此增长。 -
Current_tls_crlpath
服务器在新连接中使用的 TLS 上下文中的活动
ssl_crlpath
值。有关此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。该变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_key
服务器在新连接中使用的 TLS 上下文中的活动
ssl_key
值。有关此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。该变量是在 MySQL 8.0.16 中添加的。
-
Current_tls_version
服务器在新连接中使用的 TLS 上下文中的活动
tls_version
值。有关此状态变量与其对应系统变量之间关系的说明,请参阅Current_tls_ca
的描述。该变量是在 MySQL 8.0.16 中添加的。
-
Delayed_errors
此状态变量已被弃用(因为不支持
DELAYED
插入);预计在将来的版本中将其移除。 -
Delayed_insert_threads
此状态变量已弃用(因为不支持
DELAYED
插入);预计将在将来的版本中删除。 -
Delayed_writes
此状态变量已弃用(因为不支持
DELAYED
插入);预计将在将来的版本中删除。 -
dragnet.Status
最近对
dragnet.log_error_filter_rules
系统变量的赋值结果,如果没有进行此类赋值,则为空。此变量是在 MySQL 8.0.12 中添加的。
-
Error_log_buffered_bytes
当前在性能模式
error_log
表中使用的字节数。可能会出现值减少的情况,例如,如果新事件无法容纳,直到丢弃旧事件,但新事件比旧事件小。此变量是在 MySQL 8.0.22 中添加的。
-
Error_log_buffered_events
当前在性能模式
error_log
表中存在的事件数量。与Error_log_buffered_bytes
��似,可能会出现值减少的情况。此变量是在 MySQL 8.0.22 中添加的。
-
Error_log_expired_events
从性能模式
error_log
表中丢弃的事件数量,以腾出空间供新事件使用。此变量是在 MySQL 8.0.22 中添加的。
-
Error_log_latest_write
最后一次写入性能模式
error_log
表的时间。此变量是在 MySQL 8.0.22 中添加的。
-
Flush_commands
服务器刷新表的次数,无论是因为用户执行了
FLUSH TABLES
语句还是由于内部服务器操作。也会通过接收COM_REFRESH
数据包来增加。这与Com_flush
相反,后者指示执行了多少次FLUSH
语句,无论是FLUSH TABLES
、FLUSH LOGS
等等。 -
Global_connection_memory
所有用户连接到服务器的内存使用情况。系统线程或 MySQL 根帐户使用的内存包括在内,但这些线程或用户不会因内存使用而断开连接。除非启用了
global_connection_memory_tracking
(默认情况下为禁用),否则不会计算此内存。性能模式也必须启用。您可以通过设置
connection_memory_chunk_size
间接控制此变量更新的频率。Global_connection_memory
状态变量是在 MySQL 8.0.28 中引入的。 -
Handler_commit
内部
COMMIT
语句的次数。 -
Handler_delete
从表中删除行的次数。
-
Handler_external_lock
服务器为每次调用其
external_lock()
函数递增此变量,这通常发生在访问表实例的开始和结束时。存储引擎之间可能存在差异。例如,可以使用此变量来发现访问分区表的语句在锁定发生之前剪枝了多少分区:检查语句的计数器增加了多少,减去 2(表本身的 2 次调用),然后除以 2 以获取锁定的分区数。 -
Handler_mrr_init
服务器使用存储引擎自己的多范围读取实现进行表访问的次数。
-
Handler_prepare
两阶段提交操作准备阶段的计数器。
-
Handler_read_first
读取索引中第一个条目的次数。如果此值很高,则表明服务器正在执行大量完整索引扫描(例如,
SELECT col1 FROM foo
,假设col1
已建立索引)。 -
Handler_read_key
基于键读取行的请求数。如果此值很高,则表明您的表针对查询已正确建立索引。
-
Handler_read_last
读取索引中最后一个键的请求数。使用
ORDER BY
时,服务器会发出第一个键的请求,然后是几个下一个键的请求,而使用ORDER BY DESC
时,服务器会发出最后一个键的请求,然后是几个前一个键的请求。 -
Handler_read_next
按键顺序读取下一行的请求数。如果您正在查询带有范围约束的索引列或正在执行索引扫描,则此值会增加。
-
Handler_read_prev
按键顺序读取上一行的请求数。此读取方法主要用于优化
ORDER BY ... DESC
。 -
Handler_read_rnd
基于固定位置读取一行的请求数。如果您正在执行需要对结果进行排序的大量查询,则此值会很高。您可能有很多需要 MySQL 扫描整个表或连接未正确使用键的查询。
-
Handler_read_rnd_next
读取数据文件中下一行的请求数。如果您正在执行大量表扫描,则此值会很高。通常这表明您的表没有正确索引,或者您的查询没有利用您拥有的索引。
-
Handler_rollback
存储引擎执行回滚操作的请求数。
-
Handler_savepoint
存储引擎放置保存点的请求数。
-
Handler_savepoint_rollback
存储引擎回滚到保存点的请求数。
-
Handler_update
更新表中一行的请求数。
-
Handler_write
在表中插入一行的请求数。
-
Innodb_buffer_pool_dump_status
记录在
InnoDB
缓冲池中保存的页的操作进度,由innodb_buffer_pool_dump_at_shutdown
或innodb_buffer_pool_dump_now
的设置触发。有关相关信息和示例,请参见第 17.8.3.6 节,“保存和恢复缓冲池状态”。
-
Innodb_buffer_pool_load_status
通过读取与较早时间点对应的一组页来预热
InnoDB
缓冲池的操作进度,由innodb_buffer_pool_load_at_startup
或innodb_buffer_pool_load_now
的设置触发。如果该操作引入了太多开销,您可以通过设置innodb_buffer_pool_load_abort
来取消它。有关相关信息和示例,请参见第 17.8.3.6 节,“保存和恢复缓冲池状态”。
-
Innodb_buffer_pool_bytes_data
包含数据的
InnoDB
缓冲池中的总字节数。该数字包括脏和干净页。当压缩表导致缓冲池持有不同大小的页时,比Innodb_buffer_pool_pages_data
更准确的内存使用量计算。 -
Innodb_buffer_pool_pages_data
包含数据的
InnoDB
缓冲池中的页数量。该数字包括脏和干净页。使用压缩表时,报告的Innodb_buffer_pool_pages_data
值可能大于Innodb_buffer_pool_pages_total
(Bug #59550)。 -
Innodb_buffer_pool_bytes_dirty
当压缩表导致缓冲池持有不同大小的页时,
InnoDB
缓冲池中脏页所持有的总字节数。比Innodb_buffer_pool_pages_dirty
更准确的内存使用量计算。 -
Innodb_buffer_pool_pages_dirty
当前在
InnoDB
缓冲池中的脏页数量。 -
Innodb_buffer_pool_pages_flushed
请求从
InnoDB
缓冲池中刷新页的次数。 -
Innodb_buffer_pool_pages_free
InnoDB
缓冲池中空闲页的数量。 -
Innodb_buffer_pool_pages_latched
InnoDB
缓冲池中被锁定的页的数量。这些页当前正在被读取或写入,或者由于某种原因无法刷新或移除。由于计算这个变量的成本很高,因此只有在服务器构建时定义了UNIV_DEBUG
系统时才可用。 -
Innodb_buffer_pool_pages_misc
InnoDB
缓冲池中因已分配用于行锁或自适应哈希索引等管理开销而繁忙的页的数量。此值也可以计算为Innodb_buffer_pool_pages_total
−Innodb_buffer_pool_pages_free
−Innodb_buffer_pool_pages_data
。在使用压缩表时,Innodb_buffer_pool_pages_misc
可能报告一个超出范围的值(Bug #59550)。 -
Innodb_buffer_pool_pages_total
InnoDB
缓冲池的总大小,以页为单位。在使用压缩表时,报告的Innodb_buffer_pool_pages_data
值可能大于Innodb_buffer_pool_pages_total
(Bug #59550) -
Innodb_buffer_pool_read_ahead
由后台预读线程读入
InnoDB
缓冲池的页面数量。 -
Innodb_buffer_pool_read_ahead_evicted
由后台预读线程读入
InnoDB
缓冲池的页面数量,随后被查询未访问而被驱逐的页面数量。 -
Innodb_buffer_pool_read_ahead_rnd
由
InnoDB
发起的“随机”预读次数。当查询以随机顺序扫描表的大部分内容时会发生这种情况。 -
Innodb_buffer_pool_read_requests
逻辑读请求的数量。
-
Innodb_buffer_pool_reads
InnoDB
无法从缓冲池中满足的逻辑读数量,必须直接从磁盘读取。 -
Innodb_buffer_pool_resize_status
调整
InnoDB
缓冲池大小的操作状态是动态的,通过动态设置innodb_buffer_pool_size
参数触发。innodb_buffer_pool_size
参数是动态的,允许您在不重启服务器的情况下调整缓冲池大小。有关更多信息,请参见在线配置 InnoDB 缓冲池大小。 -
Innodb_buffer_pool_resize_status_code
报告用于跟踪在线缓冲池调整操作的状态代码。每个状态代码代表调整操作中的一个阶段。状态代码包括:
-
0: 没有正在进行的调整大小操作
-
1: 开始调整大小
-
2: 禁用 AHI(自适应哈希索引)
-
3: 撤回块
-
4: 获取全局锁
-
5: 调整池
-
6: 调整哈希
-
7: 调整失败
您可以将此状态变量与
Innodb_buffer_pool_resize_status_progress
结合使用,以跟踪调整操作每个阶段的进度。Innodb_buffer_pool_resize_status_progress
变量报告一个百分比值,指示当前阶段的进度。更多信息,请参阅监控在线缓冲池调整进度。
-
-
Innodb_buffer_pool_resize_status_progress
报告一个百分比值,指示在线缓冲池调整操作当前阶段的进度。此变量与
Innodb_buffer_pool_resize_status_code
一起使用,后者报告当前在线缓冲池调整操作阶段的状态代码。百分比值在每个缓冲池实例处理后更新。随着状态代码(由
Innodb_buffer_pool_resize_status_code
报告)从一个状态变为另一个状态,百分比值将重置为 0。有关相关信息,请参阅监控在线缓冲池调整进度。
-
Innodb_buffer_pool_wait_free
通常,对
InnoDB
缓冲池的写入是在后台进行的。当InnoDB
需要读取或创建一个页且没有可用的干净页时,InnoDB
首先刷新一些脏页并等待该操作完成。此计数器计算这些等待的实例。如果innodb_buffer_pool_size
已经适当设置,这个值应该很小。 -
Innodb_buffer_pool_write_requests
写入到
InnoDB
缓冲池的次数。 -
Innodb_data_fsyncs
到目前为止的
fsync()
操作次数。fsync()
调用的频率受innodb_flush_method
配置选项的设置影响。如果启用了
innodb_use_fdatasync
,则计算fdatasync()
操作的次数。 -
Innodb_data_pending_fsyncs
当前待处理的
fsync()
操作数量。fsync()
调用的频率受innodb_flush_method
配置选项的设置影响。 -
Innodb_data_pending_reads
当前待处理读取的数量。
-
Innodb_data_pending_writes
当前待处理写入次数。
-
Innodb_data_read
服务器启动以来读取的数据量(以字节为单位)。
-
Innodb_data_reads
总数据读取次数(操作系统文件读取)。
-
Innodb_data_writes
总数据写入次数。
-
Innodb_data_written
到目前为止写入的数据量,以字节为单位。
-
Innodb_dblwr_pages_written
写入到双写缓冲区的页面数量。参见第 17.11.1 节,“InnoDB 磁盘 I/O”。
-
Innodb_dblwr_writes
执行的双写操作次数。参见第 17.11.1 节,“InnoDB 磁盘 I/O”。
-
Innodb_have_atomic_builtins
指示服务器是否使用原子指令构建。
-
Innodb_log_waits
日志缓冲区太小,需要等待刷新才能继续的次数。
-
Innodb_log_write_requests
对
InnoDB
重做日志 的写入请求次数。 -
Innodb_log_writes
对
InnoDB
重做日志 文件的物理写入次数。 -
Innodb_num_open_files
InnoDB
当前打开的文件数量。 -
Innodb_os_log_fsyncs
对
InnoDB
重做日志 文件执行的fsync()
写入次数。 -
Innodb_os_log_pending_fsyncs
InnoDB
重做日志 文件的待处理fsync()
操作数量。 -
Innodb_os_log_pending_writes
对
InnoDB
重做日志 文件的待写入次数。 -
Innodb_os_log_written
写入到
InnoDB
重做日志 文件的字节数。 -
Innodb_page_size
InnoDB
页面大小(默认为 16KB)。许多值以页面为单位计数;页面大小使它们可以轻松转换为字节。 -
Innodb_pages_created
由对
InnoDB
表的操作创建的页面数。 -
Innodb_pages_read
由于对
InnoDB
表的操作从InnoDB
缓冲池中读取的页面数。 -
Innodb_pages_written
由对
InnoDB
表的操作写入的页面数。 -
Innodb_redo_log_enabled
重做日志记录是否已启用或��禁用。请参见 禁用重做日志。
此变量在 MySQL 8.0.21 中添加。
-
Innodb_redo_log_capacity_resized
所有重做日志文件的总重做日志容量(以字节为单位),在最后一次完成的容量调整操作之后。该值包括普通和备用重做日志文件。
如果没有待处理的调整容量向下操作,
Innodb_redo_log_capacity_resized
应等于innodb_redo_log_capacity
设置。调整容量向上的操作是瞬时的。有关相关信息,请参见 Section 17.6.5, “重做日志”。
此变量在 MySQL 8.0.30 中添加。
-
Innodb_redo_log_checkpoint_lsn
重做日志检查点 LSN。有关相关信息,请参见 Section 17.6.5, “重做日志”。
此变量在 MySQL 8.0.30 中添加。
-
Innodb_redo_log_current_lsn
当前 LSN 表示重做日志缓冲区中的最后写入位置。
InnoDB
在请求操作系统将数据写入当前重做日志文件之前,将数据写入 MySQL 进程内的重做日志缓冲区。有关相关信息,请参见 Section 17.6.5, “重做日志”。此变量在 MySQL 8.0.30 中添加。
-
Innodb_redo_log_flushed_to_disk_lsn
刷新到磁盘的 LSN。
InnoDB
首先将数据写入重做日志,然后请求操作系统将数据刷新到磁盘。刷新到磁盘的 LSN 表示InnoDB
知道已刷新到磁盘的重做日志中的最后位置。有关相关信息,请参见 Section 17.6.5, “重做日志”。此变量是在 MySQL 8.0.30 中添加的。
-
Innodb_redo_log_logical_size
数据大小值,以字节为单位,表示包含正在使用的重做日志数据的 LSN 范围,从重做日志消费者所需的最旧块到最新写入块。有关相关信息,请参见第 17.6.5 节,“重做日志”。
此变量是在 MySQL 8.0.30 中添加的。
-
Innodb_redo_log_physical_size
当前在磁盘上所有重做日志文件当前消耗的字节大小,不包括备用重做日志文件。有关相关信息,请参见第 17.6.5 节,“重做日志”。
此变量是在 MySQL 8.0.30 中添加的。
-
Innodb_redo_log_read_only
重做日志是否为只读。
此变量是在 MySQL 8.0.30 中添加的。
-
Innodb_redo_log_resize_status
重做日志调整大小状态指示重做日志容量调整机制的当前状态。可能的值包括:
-
OK
:没有问题,也没有待处理的重做日志容量调整操作。 -
正在调整大小向下
:正在进行向下调整操作。
向上调整操作是瞬时的,因此没有待处理状态。
此变量是在 MySQL 8.0.30 中添加的。
-
-
Innodb_redo_log_uuid
重做日志 UUID。
此变量是在 MySQL 8.0.30 中添加的。
-
Innodb_row_lock_current_waits
当前由
InnoDB
表上的操作等待的行锁的数量。 -
Innodb_row_lock_time
获取
InnoDB
表的行锁所花费的总时间,单位为毫秒。 -
Innodb_row_lock_time_avg
获取
InnoDB
表的行锁的平均时间,单位为毫秒。 -
Innodb_row_lock_time_max
获取
InnoDB
表的行锁的最大时间,单位为毫秒。 -
Innodb_row_lock_waits
InnoDB
表上的操作必须等待行锁的次数。 -
Innodb_rows_deleted
从
InnoDB
表中删除的行数。 -
Innodb_rows_inserted
插入到
InnoDB
表中的行数。 -
Innodb_rows_read
从
InnoDB
表中读取的行数。 -
Innodb_rows_updated
在
InnoDB
表中更新的估计行数。注意
此值并非百分之百准确。要获得准确(但更昂贵)的结果,请使用
ROW_COUNT()
。 -
Innodb_system_rows_deleted
从系统创建的模式所属的
InnoDB
表中删除的行数。 -
Innodb_system_rows_inserted
插入到系统创建的模式所属的
InnoDB
表中的行数。 -
Innodb_system_rows_read
从系统创建的模式所属的
InnoDB
表中读取的行数。 -
Innodb_truncated_status_writes
SHOW ENGINE INNODB STATUS
语句的输出被截断的次数。 -
Innodb_undo_tablespaces_active
活动撤销表空间的数量。包括隐式(由
InnoDB
创建)和显式(用户创建)的撤销表空间。有关撤销表空间的信息,请参见第 17.6.3.4 节,“撤销表空间”。 -
Innodb_undo_tablespaces_explicit
用户创建的撤销表空间的数量。有关撤销表空间的信息,请参见第 17.6.3.4 节,“撤销表空间”。
-
Innodb_undo_tablespaces_implicit
InnoDB
创建的撤销表空间的数量。当初始化 MySQL 实例时,InnoDB
会创建两个默认的撤销表空间。有关撤销表空间的信息,请参见第 17.6.3.4 节,“撤销表空间”。 -
Innodb_undo_tablespaces_total
撤销表空间的总数。包括隐式(由
InnoDB
创建)和显式(用户创建)的撤销表空间,活动和非活动的。有关撤销表空间的信息,请参见第 17.6.3.4 节,“撤销表空间”。 -
Key_blocks_not_flushed
MyISAM
键缓存中已更改但尚未刷新到磁盘的关键块数。 -
Key_blocks_unused
MyISAM
键缓存中未使用的块数。您可以使用此值来确定键缓存的使用情况;请参阅第 7.1.8 节,“服务器系统变量”中对key_buffer_size
的讨论。 -
Key_blocks_used
MyISAM
键缓存中使用的块数。此值是一个高水位标记,表示曾经同时使用的最大块数。 -
Key_read_requests
请求从
MyISAM
键缓存中读取键块的次数。 -
Key_reads
从磁盘读取键块到
MyISAM
键缓存的物理读取次数。如果Key_reads
很大,则您的key_buffer_size
值可能太小。缓存未命中率可以计算为Key_reads
/Key_read_requests
。 -
Key_write_requests
请求将键块写入
MyISAM
键缓存的次数。 -
Key_writes
从
MyISAM
键缓存到磁盘的键块的物理写入次数。 -
Last_query_cost
查询优化器计算的上一个编译查询的总成本。这对于比较相同查询的不同查询计划的成本很有用。默认值为 0 表示尚未编译任何查询。默认值为 0。
Last_query_cost
具有会话范围。在 MySQL 8.0.16 及更高版本中,此变量显示具有多个查询块的查询的成本,总结每个查询块的成本估计,估计非可缓存子查询执行的次数,并将这些查询块的成本乘以子查询执行的次数。 (Bug #92766, Bug #28786951) 在 MySQL 8.0.16 之前,
Last_query_cost
仅对简单的“平面”查询进行准确计算,而不适用于包含子查询或UNION
等复杂查询。 (对于后者,该值设置为 0。) -
Last_query_partial_plans
查询优化器在构建上一个查询的执行计划时所做的迭代次数。
Last_query_partial_plans
具有会话范围。 -
Locked_connects
尝试连接被锁定用户账户的次数。有关账户锁定和解锁的信息,请参见第 8.2.20 节,“账户锁定”。
-
Max_execution_time_exceeded
执行超时时间已超过的
SELECT
语句数量。 -
Max_execution_time_set
设置了非零执行超时时间的
SELECT
语句数量。这包括包含非零MAX_EXECUTION_TIME
优化提示的语句,以及不包含此类提示但在max_execution_time
系统变量指示的超时时间非零时执行的语句。 -
Max_execution_time_set_failed
尝试设置执行超时失败的
SELECT
语句数量。 -
Max_used_connections
服务器启动以来同时使用的最大连接数。
-
Max_used_connections_time
达到当前值时的
Max_used_connections
时间。 -
Not_flushed_delayed_rows
此状态变量已弃用(因为不支持
DELAYED
插入);预计在将来的版本中将其移除。 -
mecab_charset
当前由 MeCab 全文本解析器插件使用的字符集。有关相关信息,请参见第 14.9.9 节,“MeCab 全文本解析器插件”。
-
Ongoing_anonymous_transaction_count
显示已标记为匿名的进行中事务数量。这可用于确保没有进一步的事务等待处理。
-
Ongoing_anonymous_gtid_violating_transaction_count
此状态变量仅在调试构建中可用。显示使用
gtid_next=ANONYMOUS
并违反 GTID 一致性的进行中事务数量。 -
Ongoing_automatic_gtid_violating_transaction_count
此状态变量仅在调试构建中可用。显示正在使用
gtid_next=AUTOMATIC
并违反 GTID 一致性的进行中事务的数量。 -
Open_files
已打开的文件数量。此计数包括服务器打开的常规文件。它不包括其他类型的文件,如套接字或管道。此计数还不包括存储引擎使用其自己的内部函数而不是请求服务器级别执行的文件。
-
Open_streams
已打开的流数量(主要用于日志记录)。
-
Open_table_definitions
已缓存的表定义数量。
-
Open_tables
已打开的表数量。
-
Opened_files
已使用
my_open()
(一个mysys
库函数)打开的文件数量。服务器的部分打开文件而不使用此函数的部分不会增加计数。 -
Opened_table_definitions
已缓存的表定义数量。
-
Opened_tables
已打开的表数量。如果
Opened_tables
很大,则您的table_open_cache
值可能太小。 -
Performance_schema_*
xxx*
第 29.16 节,“性能模式状态变量”中列出了性能模式状态变量。这些变量提供了关于由于内存限制而无法加载或创建的仪器信息。
-
Prepared_stmt_count
当前准备语句的数量。(最大语句数由
max_prepared_stmt_count
系统变量给出。) -
Queries
服务器执行的语句数量。此变量包括存储程序内执行的语句,不同于
Questions
变量。它不计算COM_PING
或COM_STATISTICS
命令。本节开头的讨论说明了如何将此语句计数状态变量与其他类似变量相关联。
-
Questions
服务器执行的语句数量。这仅包括由客户端发送到服务器的语句,不包括存储程序内执行的语句,与
Queries
变量不同。此变量不计算COM_PING
、COM_STATISTICS
、COM_STMT_PREPARE
、COM_STMT_CLOSE
或COM_STMT_RESET
命令。本节开头的讨论说明了如何将此语句计数状态变量与其他类似变量相关联。
-
Replica_open_temp_tables
从 MySQL 8.0.26 开始,使用
Replica_open_temp_tables
代替Slave_open_temp_tables
,后者从该版本开始已被弃用。在 MySQL 8.0.26 之前的版本中,请使用Slave_open_temp_tables
。Replica_open_temp_tables
显示了复制 SQL 线程当前打开的临时表的数量。如果值大于零,则关闭复制品是不安全的;请参阅第 19.5.1.31 节,“复制和临时表”。此变量报告了所有复制通道的打开临时表的总数。 -
Replica_rows_last_search_algorithm_used
从 MySQL 8.0.26 开始,使用
Replica_rows_last_search_algorithm_used
代替Slave_rows_last_search_algorithm_used
,后者从该版本开始已被弃用。在 MySQL 8.0.26 之前的版本中,请使用Slave_rows_last_search_algorithm_used
。Replica_rows_last_search_algorithm_used
显示了此复制品最近用于定位行的搜索算法。结果显示了复制品在任何通道上执行的最后一个事务中使用的搜索算法是使用索引、表扫描还是哈希。使用的方法取决于
slave_rows_search_algorithms
系统变量的设置(现已弃用),以及相关表上可用的键。此变量仅适用于 MySQL 的调试版本。
-
Resource_group_supported
指示资源组功能是否受支持。
在某些平台或 MySQL 服务器配置中,资源组可能不可用或存在限制。特别是,Linux 系统可能需要一些安装方法的手动步骤。有关详细信息,请参阅资源组限制。
-
Rpl_semi_sync_master_clients
半同步副本的数量。
当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_clients
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_clients
。 -
Rpl_semi_sync_master_net_avg_wait_time
源等待复制回复的平均时间(以微秒为单位)。这个变量始终为
0
,已被弃用;预计将在将来的版本中移除。当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_net_avg_wait_time
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_net_avg_wait_time
。 -
Rpl_semi_sync_master_net_wait_time
源等待复制回复的总时间(以微秒为单位)。这个变量始终为
0
,已被弃用;预计将在将来的版本中移除。当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_net_wait_time
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_net_wait_time
。 -
Rpl_semi_sync_master_net_waits
源等待复制回复的总次数。
当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以建立半同步复制时,Rpl_semi_sync_master_net_waits
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_net_waits
。 -
Rpl_semi_sync_master_no_times
源头关闭半同步复制的次数。
当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以建立半同步复制时,Rpl_semi_sync_master_no_times
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_no_times
。 -
Rpl_semi_sync_master_no_tx
未被副本成功确认的提交次数。
当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以建立半同步复制时,Rpl_semi_sync_master_no_tx
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_no_tx
。 -
Rpl_semi_sync_master_status
源头当前是否在运行半同步复制。如果插件已启用并发生了提交确认,则值为
ON
。如果插件未启用或源头由于提交确认超时而回退到异步复制,则值为OFF
。当在副本上安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以建立半同步复制时,Rpl_semi_sync_master_status
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_status
。 -
Rpl_semi_sync_master_timefunc_failures
源头在调用
gettimeofday()
等时间函数时失败的次数。Rpl_semi_sync_master_timefunc_failures
在副本上安装了rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_timefunc_failures
。 -
Rpl_semi_sync_master_tx_avg_wait_time
源等待每个事务的平均时间(以微秒为单位)。
Rpl_semi_sync_master_tx_avg_wait_time
在副本上安装了rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_tx_avg_wait_time
。 -
Rpl_semi_sync_master_tx_wait_time
源等待事务的总时间(以微秒为单位)。
Rpl_semi_sync_master_tx_wait_time
在副本上安装了rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_tx_wait_time
。 -
Rpl_semi_sync_master_tx_waits
源等待事务的总次数。
Rpl_semi_sync_master_tx_waits
在副本上安装了rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_tx_waits
。 -
Rpl_semi_sync_master_wait_pos_backtraverse
源等待事件的总次数,其二进制坐标低于先前等待的事件。当事务开始等待回复的顺序与它们的二进制日志事件写入顺序不同时,可能会发生这种情况。
当在副本端安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_wait_pos_backtraverse
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_wait_pos_backtraverse
。 -
Rpl_semi_sync_master_wait_sessions
当前等待副本回复的会话数量。
当在副本端安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_wait_sessions
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_wait_sessions
。 -
Rpl_semi_sync_master_yes_tx
已被副本成功确认的提交数量。
当在副本端安装了
rpl_semi_sync_master
(semisync_master.so
库)插件以设置半同步复制时,Rpl_semi_sync_master_yes_tx
可用。如果安装了rpl_semi_sync_source
插件(semisync_source.so
库),则可用Rpl_semi_sync_source_yes_tx
。 -
Rpl_semi_sync_source_clients
半同步副本的数量。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,Rpl_semi_sync_source_clients
可用。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可用Rpl_semi_sync_master_clients
。 -
Rpl_semi_sync_source_net_avg_wait_time
源端等待副本回复的平均时间(以微秒为单位)。此变量始终为
0
,已被弃用;预计将在将来的版本中移除。当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,可以使用Rpl_semi_sync_source_net_avg_wait_time
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可以使用Rpl_semi_sync_master_net_avg_wait_time
。 -
Rpl_semi_sync_source_net_wait_time
源端等待副本回复的总时间(以微秒为单位)。此变量始终为
0
,已被弃用;预计将在将来的版本中移除。当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,可以使用Rpl_semi_sync_source_net_wait_time
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可以使用Rpl_semi_sync_master_net_wait_time
。 -
Rpl_semi_sync_source_net_waits
源端等待副本回复的总次数。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,可以使用Rpl_semi_sync_source_net_waits
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可以使用Rpl_semi_sync_master_net_waits
。 -
Rpl_semi_sync_source_no_times
源端关闭半同步复制的次数。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,可以使用Rpl_semi_sync_source_no_times
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可以使用Rpl_semi_sync_master_no_times
。 -
Rpl_semi_sync_source_no_tx
未被副本成功确认的提交次数。
Rpl_semi_sync_source_no_tx
是在源端安装了rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时可用的。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会使用Rpl_semi_sync_master_no_tx
。 -
Rpl_semi_sync_source_status
源端当前是否正在运行半同步复制。如果插件已启用并发生了提交确认,则值为
ON
。如果插件未启用或源端由于提交确认超时而回退到异步复制,则值为OFF
。Rpl_semi_sync_source_status
是在源端安装了rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时可用的。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会使用Rpl_semi_sync_master_status
。 -
Rpl_semi_sync_source_timefunc_failures
源端调用诸如
gettimeofday()
等时间函数失败的次数。Rpl_semi_sync_source_timefunc_failures
是在源端安装了rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时可用的。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会使用Rpl_semi_sync_master_timefunc_failures
。 -
Rpl_semi_sync_source_tx_avg_wait_time
源端等待每个事务的平均时间(以微秒为单位)。
Rpl_semi_sync_source_tx_avg_wait_time
是在源端安装了rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时可用的。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会使用Rpl_semi_sync_master_tx_avg_wait_time
。 -
Rpl_semi_sync_source_tx_wait_time
源端等待事务的总时间(以微秒为单位)。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,就会出现Rpl_semi_sync_source_tx_wait_time
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会出现Rpl_semi_sync_master_tx_wait_time
。 -
Rpl_semi_sync_source_tx_waits
源端等待事务的总次数。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,就会出现Rpl_semi_sync_source_tx_waits
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会出现Rpl_semi_sync_master_tx_waits
。 -
Rpl_semi_sync_source_wait_pos_backtraverse
源端等待具有比先前等待的事件更低的二进制坐标的事件的总次数。当事务开始等待回复的顺序与它们的二进制日志事件写入的顺序不同时,就会发生这种情况。
Rpl_semi_sync_source_wait_pos_backtraverse
是在源端安装了rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时才会出现。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会出现Rpl_semi_sync_master_wait_pos_backtraverse
。 -
Rpl_semi_sync_source_wait_sessions
当前等待副本回复的会话数。
当在源端安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,就会出现Rpl_semi_sync_source_wait_sessions
。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则会出现Rpl_semi_sync_master_wait_sessions
。 -
Rpl_semi_sync_source_yes_tx
副本成功确认的提交次数。
当在源上安装了
rpl_semi_sync_source
(semisync_source.so
库)插件以设置半同步复制时,Rpl_semi_sync_source_yes_tx
可用。如果安装了rpl_semi_sync_master
插件(semisync_master.so
库),则可用Rpl_semi_sync_master_yes_tx
。 -
Rpl_semi_sync_replica_status
显示复制品上当前是否正在运行半同步复制。如果插件已启用且复制 I/O(接收器)线程正在运行,则为
ON
,否则为OFF
。当在复制品上安装了
rpl_semi_sync_replica
(semisync_replica.so
库)插件以设置半同步复制时,Rpl_semi_sync_replica_status
可用。如果安装了rpl_semi_sync_slave
插件(semisync_slave.so
库),则可用Rpl_semi_sync_slave_status
。 -
Rpl_semi_sync_slave_status
显示复制品上当前是否正在运行半同步复制。如果插件已启用且复制 I/O(接收器)线程正在运行,则为
ON
,否则为OFF
。当在复制品上安装了
rpl_semi_sync_slave
(semisync_slave.so
库)插件以设置半同步复制时,Rpl_semi_sync_slave_status
可用。如果安装了rpl_semi_sync_replica
插件(semisync_replica.so
库),则可用Rpl_semi_sync_replica_status
。 -
Rsa_public_key
此变量的值是
sha256_password
认证插件用于 RSA 密钥对密码交换的公钥。仅当服务器成功初始化由sha256_password_private_key_path
和sha256_password_public_key_path
系统变量命名的文件中的私钥和公钥时,值才不为空。Rsa_public_key
的值来自后一个文件。有关
sha256_password
的信息,请参见第 8.4.1.3 节,“SHA-256 可插拔认证”。 -
Secondary_engine_execution_count
转移到辅助引擎的查询数量。此变量在 MySQL 8.0.13 中添加。
用于 HeatWave。请参阅 MySQL HeatWave 用户指南。
-
Select_full_join
执行表扫描的连接数,因为它们不使用索引。如果此值不为 0,则应仔细检查表的索引。
-
Select_full_range_join
使用范围搜索的连接表的数量。
-
Select_range
使用第一个表范围的连接数。即使该值很大,通常也不是关键问题。
-
Select_range_check
在每行后检查键使用情况的无键连接数。如果此值不为 0,则应仔细检查表的索引。
-
Select_scan
对第一个表进行全面扫描的连接数。
-
Slave_open_temp_tables
从 MySQL 8.0.26 开始,
Slave_open_temp_tables
已弃用,应改用别名Replica_open_temp_tables
。在 MySQL 8.0.26 之前的版本中,请使用Slave_open_temp_tables
。Slave_open_temp_tables
显示复制 SQL 线程当前打开的临时表的数量。如果该值大于零,则不安全关闭副本;请参见 第 19.5.1.31 节,“复制和临时表”。此变量报告所有复制通道的打开临时表的总数。 -
Slave_rows_last_search_algorithm_used
从 MySQL 8.0.26 开始,
Slave_rows_last_search_algorithm_used
已弃用,应改用别名Replica_rows_last_search_algorithm_used
。在 MySQL 8.0.26 之前的版本中,请使用Slave_rows_last_search_algorithm_used
。Slave_rows_last_search_algorithm_used
显示此复制品最近用于定位行以进行基于行的复制的搜索算法。结果显示复制品是否在任何通道上执行的最后一个事务中使用索引、表扫描或哈希作为搜索算法。使用取决于
slave_rows_search_algorithms
系统变量的设置以及相关表上可用的密钥。此变量仅适用于 MySQL 的调试版本。
-
Slow_launch_threads
超过
slow_launch_time
秒创建的线程数。 -
Slow_queries
超过
long_query_time
秒的查询次数。无论是否启用慢查询日志,此计数器都会递增。有关该日志的信息,请参阅第 7.4.5 节,“慢查询日志”。 -
Sort_merge_passes
排序算法已经执行的合并次数。如果这个值很大,您应该考虑增加
sort_buffer_size
系统变量的值。 -
Sort_range
使用范围进行的排序次数。
-
Sort_rows
已排序行的数量。
-
Sort_scan
通过扫描表进行的排序次数。
-
Ssl_accept_renegotiates
建立连接所需的协商次数。
-
Ssl_accepts
已接受的 SSL 连接数量。
-
Ssl_callback_cache_hits
回调缓存命中次数。
-
Ssl_cipher
当前的加密密码(未加密连接为空)。
-
Ssl_cipher_list
可能的 SSL 密码列表(非 SSL 连接为空)。如果 MySQL 支持 TLSv1.3,则该值包括可能的 TLSv1.3 密码套件。请参阅第 8.3.2 节,“加密连接 TLS 协议和密码”。
-
Ssl_client_connects
尝试连接到启用 SSL 的复制源服务器的 SSL 连接次数。
-
Ssl_connect_renegotiates
建立到启用 SSL 的复制源服务器的连接所需的协商次数。
-
Ssl_ctx_verify_depth
SSL 上下文验证深度(测试链中有多少证书)。
-
Ssl_ctx_verify_mode
SSL 上下文验证模式。
-
Ssl_default_timeout
默认 SSL 超时时间。
-
Ssl_finished_accepts
成功连接到服务器的 SSL 连接数。
-
Ssl_finished_connects
成功复制到启用 SSL 的复制源服务器的连接数。
-
Ssl_server_not_after
SSL 证书有效的最后日期。要检查 SSL 证书到期信息,请使用此语句:
mysql> SHOW STATUS LIKE 'Ssl_server_not%'; +-----------------------+--------------------------+ | Variable_name | Value | +-----------------------+--------------------------+ | Ssl_server_not_after | Apr 28 14:16:39 2025 GMT | | Ssl_server_not_before | May 1 14:16:39 2015 GMT | +-----------------------+--------------------------+
-
Ssl_server_not_before
SSL 证书有效的第一个日期。
-
Ssl_session_cache_hits
SSL 会话缓存命中次数。
-
Ssl_session_cache_misses
SSL 会话缓存未命中次数。
-
Ssl_session_cache_mode
SSL 会话缓存模式。当
ssl_session_cache_mode
服务器变量的值为ON
时,Ssl_session_cache_mode
状态变量的值为SERVER
。 -
Ssl_session_cache_overflows
SSL 会话缓存溢出次数。
-
Ssl_session_cache_size
SSL 会话缓存大小。
-
Ssl_session_cache_timeout
缓存中 SSL 会话的超时值(以秒为单位)。
-
Ssl_session_cache_timeouts
SSL 会话缓存超时次数。
-
Ssl_sessions_reused
如果当前 MySQL 会话中未使用 TLS,或者未重用 TLS 会话,则此值为 0;否则为 1。
Ssl_sessions_reused
具有会话范围。 -
Ssl_used_session_cache_entries
使用了多少 SSL 会话缓存条目。
-
Ssl_verify_depth
复制 SSL 连接的验证深度。
-
Ssl_verify_mode
服务器用于使用 SSL 的连接的验证模式。该值是一个位掩码;位在
openssl/ssl.h
头文件中定义:# define SSL_VERIFY_NONE 0x00 # define SSL_VERIFY_PEER 0x01 # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 # define SSL_VERIFY_CLIENT_ONCE 0x04
SSL_VERIFY_PEER
表示服务器要求客户端证书。如果客户端提供了证书,服务器将进行验证,并仅在验证成功时继续。SSL_VERIFY_CLIENT_ONCE
表示仅在初始握手中执行对客户端证书的请求。 -
Ssl_version
连接的 SSL 协议版本(例如,TLSv1)。如果连接未加密,则该值为空。
-
Table_locks_immediate
申请表锁可以立即获得的次数。
-
Table_locks_waited
申请表锁无法立即获得并需要等待的次数。如果这个数字很高并且出现性能问题,你应该首先优化你的查询,然后要么拆分你的表或表,要么使用复制。
-
Table_open_cache_hits
开放表缓存查找的命中次数。
-
Table_open_cache_misses
开放表缓存查找的未命中次数。
-
Table_open_cache_overflows
开放表缓存的溢出次数。这是在打开或关闭表后,缓存实例有一个未使用的条目且实例的大小大于
table_open_cache
/table_open_cache_instances
时的次数。 -
Tc_log_max_pages_used
对于当mysqld充当内部 XA 事务恢复的事务协调器时使用的日志的内存映射实现,此变量指示自服务器启动以来日志使用的最大页数。如果
Tc_log_max_pages_used
和Tc_log_page_size
的乘积始终明显小于日志大小,则大小大于必要大小,可以减小。(大小由--log-tc-size
选项设置。此变量未使用:对于基于二进制日志的恢复是不需要的,并且除非能够进行两阶段提交并支持 XA 事务的存储引擎数量大于一个,否则不会使用内存映射恢复日志方法。(InnoDB
是唯一适用的引擎。) -
Tc_log_page_size
用于 XA 恢复日志的内存映射实现的页面大小。默认值使用
getpagesize()
确定。出于与Tc_log_max_pages_used
描述的相同原因,此变量未使用。 -
Tc_log_page_waits
对于恢复日志的内存映射实现,每次服务器无法提交事务并必须等待日志中的空闲页时,此变量会递增。如果此值较大,您可能需要增加日志大小(使用
--log-tc-size
选项)。对于基于二进制日志的恢复,每次二进制日志无法关闭因为有两阶段提交正在进行时,此变量会递增。(关闭操作会等待所有此类事务完成。) -
Telemetry_traces_supported
服务器遥测跟踪是否受支持。
有关更多信息,请参阅 MySQL 源代码文档中的服务器遥测跟踪服务部分。
-
Threads_cached
线程缓存中的线程数。
-
Threads_connected
当前打开连接的数量。
-
Threads_created
用于处理连接创建的线程数。如果
Threads_created
较大,您可能需要增加thread_cache_size
的值。缓存未命中率可计算为Threads_created
/Connections
。 -
Threads_running
非休眠状态的线程数。
-
Tls_library_version
此 MySQL 实例中使用的 OpenSSL 库的运行时版本。
此变量是在 MySQL 8.0.30 中添加的。
-
Uptime
服务器已经运行的秒数。
-
Uptime_since_flush_status
距离最近一次
FLUSH STATUS
语句的秒数。