MySQL5.7 使用系统变量

  官网地址:MySQL :: MySQL 5.7 Reference Manual :: 5.1.8 Using System Variables

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

MySQL 5.7 参考手册  /  ...  /  使用系统变量

5.1.8 使用系统变量

MySQL 服务器维护许多配置其操作的系统变量。第 5.1.7 节“服务器系统变量”描述了这些变量的含义。每个系统变量都有一个默认值。可以在服务器启动时使用命令行或选项文件中的选项设置系统变量。其中大多数可以在服务器运行时通过语句动态更改 SET ,这使您无需停止并重新启动服务器即可修改服务器的操作。您还可以在表达式中使用系统变量值。

许多系统变量是内置的。由服务器插件实现的系统变量在安装插件时公开,并且其名称以插件名称开头。例如,该 audit_log插件实现了一个名为 的系统变量audit_log_policy

系统变量存在两个范围。全局变量影响服务器的整体运行。会话变量影响各个客户端连接的操作。给定的系统变量可以同时具有全局值和会话值。全局变量和会话系统变量的关系如下:

  • 当服务器启动时,它将每个全局变量初始化为其默认值。这些默认值可以通过命令行或选项文件中指定的选项进行更改。(请参见 第 4.2.2 节“指定程序选项”。)

  • 服务器还为每个连接的客户端维护一组会话变量。客户端的会话变量在连接时使用相应全局变量的当前值进行初始化。例如,客户端的SQL模式由会话 sql_mode值控制,该会话值在客户端连接到全局值的值时初始化sql_mode

    对于某些系统变量,会话值不是从相应的全局值初始化的;如果是这样,则会在变量描述中指出。

系统变量值可以在服务器启动时使用命令行或选项文件中的选项进行全局设置。启动时,系统变量的语法与命令选项的语法相同,因此在变量名称中,破折号和下划线可以互换使用。例如 --general_log=ON和 --general-log=ON是等价的。

当您使用启动选项设置采用数值的变量时,可以使用后缀 KM、 或 G(大写或小写)来指定该值,以指示乘数 1024、1024 2或 1024 3;即分别以千字节、兆字节或千兆字节为单位。因此,以下命令启动服务器,InnoDB日志文件大小为 16 MB,最大数据包大小为 1 GB:

mysqld --innodb-log-file-size=16M --max-allowed-packet=1G

在选项文件中,这些变量的设置如下:

[mysqld]
innodb_log_file_size=16M
max_allowed_packet=1G

后缀字母的大小写无关紧要; 16M16m是等价的,就像1G和 一样1g

要限制在运行时使用语句设置系统变量的最大值 SET ,请在服务器启动时使用以下形式的选项指定该最大值 。例如,要防止 的值 在运行时增加到超过 32MB,请使用选项 。 --maximum-var_name=valueinnodb_log_file_size--maximum-innodb-log-file-size=32M

许多系统变量是动态的,可以在运行时使用 SET 语句进行更改。有关列表,请参见 第 5.1.8.2 节 “动态系统变量”。要使用 更改系统变量 SET,请按名称引用它,可以在前面加上修饰符。在运行时,系统变量名称必须使用下划线编写,而不是破折号。以下示例简要说明了此语法:

  • 设置全局系统变量:

    SET GLOBAL max_connections = 1000;
    SET @@GLOBAL.max_connections = 1000;
  • 设置会话系统变量:

    SET SESSION sql_mode = 'TRADITIONAL';
    SET @@SESSION.sql_mode = 'TRADITIONAL';
    SET @@sql_mode = 'TRADITIONAL';

有关 SET 语法的完整详细信息,请参见第 13.7.4.1 节 “变量赋值的 SET 语法”。有关设置系统变量的权限要求的描述,请参见 第 5.1.8.1 节 “系统变量权限”

在服务器启动时设置变量时可以使用用于指定值乘数的后缀,但不能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                        | 50                                |
| basedir                         | /home/mysql/                      |
| binlog_cache_size               | 32768                             |
| bulk_insert_buffer_size         | 8388608                           |
| character_set_client            | utf8                              |
| character_set_connection        | utf8                              |
| character_set_database          | latin1                            |
| character_set_filesystem        | binary                            |
| character_set_results           | utf8                              |
| character_set_server            | latin1                            |
| character_set_system            | utf8                              |
| character_sets_dir              | /home/mysql/share/mysql/charsets/ |
| collation_connection            | utf8_general_ci                   |
| collation_database              | latin1_swedish_ci                 |
| collation_server                | latin1_swedish_ci                 |
...
| innodb_autoextend_increment     | 8                                 |
| innodb_buffer_pool_size         | 8388608                           |
| innodb_checksums                | ON                                |
| innodb_commit_concurrency       | 0                                 |
| innodb_concurrency_tickets      | 500                               |
| innodb_data_file_path           | ibdata1:10M:autoextend            |
| innodb_data_home_dir            |                                   |
...
| version                         | 5.7.18-log                        |
| version_comment                 | Source distribution               |
| version_compile_machine         | i686                              |
| version_compile_os              | suse-linux                        |
| 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在设置 -only 变量时 需要关键字,但在检索变量时不需要关键字的原因GLOBAL是为了防止将来出现问题:

  • 如果SESSION要删除的变量与某个变量同名GLOBAL,则具有足以修改全局变量的权限的客户端可能会意外更改该GLOBAL 变量,而不仅仅是SESSION 其自己会话的变量。

  • 如果SESSION要添加与变量同名的变量GLOBAL,则打算更改该GLOBAL 变量的客户端可能会发现只更改了自己的SESSION 变量。

MySQL 5.7 参考手册  /  ...  /  系统变量权限
5.1.8.1 系统变量权限

系统变量可以具有影响整个服务器操作的全局值、仅影响当前会话的会话值或两者。要修改系统变量运行时值,请使用该 SET 语句。请参见第 13.7.4.1 节“变量赋值的 SET 语法”。本节描述在运行时为系统变量赋值所需的权限。

设置全局系统变量运行时值需要该 SUPER权限。

要设置会话系统变量运行时值,请使用该 SET SESSION语句。与设置全局运行时值相比,设置会话运行时值通常不需要特殊权限,并且任何用户都可以执行此操作来影响当前会话。对于某些系统变量,设置会话值可能会在当前会话之外产生影响,因此是一项受限操作,只有具有权限的用户才能完成 SUPER。如果会话系统变量以这种方式受到限制,则变量描述会指示该限制。示例包括 binlog_format和 sql_log_bin。设置这些变量的会话值会影响当前会话的二进制日志记录,但也可能对服务器复制和备份的完整性产生更广泛的影响。

MySQL 5.7 参考手册  /  ...  /  动态系统变量
5.1.8.2 动态系统变量

许多服务器系统变量是动态的,可以在运行时设置。请参见第 13.7.4.1 节“变量赋值的 SET 语法”。有关设置系统变量的权限要求的描述,请参见 第 5.1.8.1 节 “系统变量权限”

下表列出了 中适用的所有动态系统变量mysqld

该表列出了每个变量的数据类型和范围。最后一列指示每个变量的范围是全局、会话还是两者。有关变量的设置和使用的详细信息,请参见相应项目的说明。在适当的情况下,提供有关该项目的更多信息的直接链接。

具有“字符串” 类型的变量采用字符串值。具有“数字”类型的变量 采用数字值。具有“布尔”类型的变量可以设置为 0、1 ONOFF。标记为“枚举”的变量通常应设置为该变量的可用值之一,但也可以设置为与所需枚举值相对应的数字。对于枚举系统变量,第一个枚举值对应于 0。这与 ENUM用于表列的数据类型,第一个枚举值对应于 1。

表 5.4 动态系统变量汇总

Variable NameVariable TypeVariable Scope
audit_log_connection_policyEnumerationGlobal
audit_log_disableBooleanGlobal
audit_log_exclude_accountsStringGlobal
audit_log_flushBooleanGlobal
audit_log_format_unix_timestampBooleanGlobal
audit_log_include_accountsStringGlobal
audit_log_read_buffer_sizeIntegerVaries
audit_log_rotate_on_sizeIntegerGlobal
audit_log_statement_policyEnumerationGlobal
authentication_ldap_sasl_auth_method_nameStringGlobal
authentication_ldap_sasl_bind_base_dnStringGlobal
authentication_ldap_sasl_bind_root_dnStringGlobal
authentication_ldap_sasl_bind_root_pwdStringGlobal
authentication_ldap_sasl_ca_pathStringGlobal
authentication_ldap_sasl_group_search_attrStringGlobal
authentication_ldap_sasl_group_search_filterStringGlobal
authentication_ldap_sasl_init_pool_sizeIntegerGlobal
authentication_ldap_sasl_log_statusIntegerGlobal
authentication_ldap_sasl_max_pool_sizeIntegerGlobal
authentication_ldap_sasl_server_hostStringGlobal
authentication_ldap_sasl_server_portIntegerGlobal
authentication_ldap_sasl_tlsBooleanGlobal
authentication_ldap_sasl_user_search_attrStringGlobal
authentication_ldap_simple_auth_method_nameStringGlobal
authentication_ldap_simple_bind_base_dnStringGlobal
authentication_ldap_simple_bind_root_dnStringGlobal
authentication_ldap_simple_bind_root_pwdStringGlobal
authentication_ldap_simple_ca_pathStringGlobal
authentication_ldap_simple_group_search_attrStringGlobal
authentication_ldap_simple_group_search_filterStringGlobal
authentication_ldap_simple_init_pool_sizeIntegerGlobal
authentication_ldap_simple_log_statusIntegerGlobal
authentication_ldap_simple_max_pool_sizeIntegerGlobal
authentication_ldap_simple_server_hostStringGlobal
authentication_ldap_simple_server_portIntegerGlobal
authentication_ldap_simple_tlsBooleanGlobal
authentication_ldap_simple_user_search_attrStringGlobal
auto_increment_incrementIntegerBoth
auto_increment_offsetIntegerBoth
autocommitBooleanBoth
automatic_sp_privilegesBooleanGlobal
avoid_temporal_upgradeBooleanGlobal
big_tablesBooleanBoth
binlog_cache_sizeIntegerGlobal
binlog_checksumStringGlobal
binlog_direct_non_transactional_updatesBooleanBoth
binlog_error_actionEnumerationGlobal
binlog_formatEnumerationBoth
binlog_group_commit_sync_delayIntegerGlobal
binlog_group_commit_sync_no_delay_countIntegerGlobal
binlog_max_flush_queue_timeIntegerGlobal
binlog_order_commitsBooleanGlobal
binlog_row_imageEnumerationBoth
binlog_rows_query_log_eventsBooleanBoth
binlog_stmt_cache_sizeIntegerGlobal
binlog_transaction_dependency_history_sizeIntegerGlobal
binlog_transaction_dependency_trackingEnumerationGlobal
block_encryption_modeStringBoth
bulk_insert_buffer_sizeIntegerBoth
character_set_clientStringBoth
character_set_connectionStringBoth
character_set_databaseStringBoth
character_set_filesystemStringBoth
character_set_resultsStringBoth
character_set_serverStringBoth
check_proxy_usersBooleanGlobal
collation_connectionStringBoth
collation_databaseStringBoth
collation_serverStringBoth
completion_typeEnumerationBoth
concurrent_insertEnumerationGlobal
connect_timeoutIntegerGlobal
connection_control_failed_connections_thresholdIntegerGlobal
connection_control_max_connection_delayIntegerGlobal
connection_control_min_connection_delayIntegerGlobal
debugStringBoth
debug_syncStringSession
default_password_lifetimeIntegerGlobal
default_storage_engineEnumerationBoth
default_tmp_storage_engineEnumerationBoth
default_week_formatIntegerBoth
delay_key_writeEnumerationGlobal
delayed_insert_limitIntegerGlobal
delayed_insert_timeoutIntegerGlobal
delayed_queue_sizeIntegerGlobal
div_precision_incrementIntegerBoth
end_markers_in_jsonBooleanBoth
enforce_gtid_consistencyEnumerationGlobal
eq_range_index_dive_limitIntegerBoth
event_schedulerEnumerationGlobal
expire_logs_daysIntegerGlobal
explicit_defaults_for_timestampBooleanBoth
flushBooleanGlobal
flush_timeIntegerGlobal
foreign_key_checksBooleanBoth
ft_boolean_syntaxStringGlobal
general_logBooleanGlobal
general_log_fileFile nameGlobal
group_concat_max_lenIntegerBoth
group_replication_allow_local_disjoint_gtids_joinBooleanGlobal
group_replication_allow_local_lower_version_joinBooleanGlobal
group_replication_auto_increment_incrementIntegerGlobal
group_replication_bootstrap_groupBooleanGlobal
group_replication_components_stop_timeoutIntegerGlobal
group_replication_compression_thresholdIntegerGlobal
group_replication_enforce_update_everywhere_checksBooleanGlobal
group_replication_exit_state_actionEnumerationGlobal
group_replication_flow_control_applier_thresholdIntegerGlobal
group_replication_flow_control_certifier_thresholdIntegerGlobal
group_replication_flow_control_modeEnumerationGlobal
group_replication_force_membersStringGlobal
group_replication_group_nameStringGlobal
group_replication_group_seedsStringGlobal
group_replication_gtid_assignment_block_sizeIntegerGlobal
group_replication_ip_whitelistStringGlobal
group_replication_local_addressStringGlobal
group_replication_member_weightIntegerGlobal
group_replication_poll_spin_loopsIntegerGlobal
group_replication_recovery_complete_atEnumerationGlobal
group_replication_recovery_reconnect_intervalIntegerGlobal
group_replication_recovery_retry_countIntegerGlobal
group_replication_recovery_ssl_caStringGlobal
group_replication_recovery_ssl_capathStringGlobal
group_replication_recovery_ssl_certStringGlobal
group_replication_recovery_ssl_cipherStringGlobal
group_replication_recovery_ssl_crlFile nameGlobal
group_replication_recovery_ssl_crlpathDirectory nameGlobal
group_replication_recovery_ssl_keyStringGlobal
group_replication_recovery_ssl_verify_server_certBooleanGlobal
group_replication_recovery_use_sslBooleanGlobal
group_replication_single_primary_modeBooleanGlobal
group_replication_ssl_modeEnumerationGlobal
group_replication_start_on_bootBooleanGlobal
group_replication_transaction_size_limitIntegerGlobal
group_replication_unreachable_majority_timeoutIntegerGlobal
gtid_executed_compression_periodIntegerGlobal
gtid_modeEnumerationGlobal
gtid_nextEnumerationSession
gtid_purgedStringGlobal
host_cache_sizeIntegerGlobal
identityIntegerSession
init_connectStringGlobal
init_slaveStringGlobal
innodb_adaptive_flushingBooleanGlobal
innodb_adaptive_flushing_lwmIntegerGlobal
innodb_adaptive_hash_indexBooleanGlobal
innodb_adaptive_max_sleep_delayIntegerGlobal
innodb_api_bk_commit_intervalIntegerGlobal
innodb_api_trx_levelIntegerGlobal
innodb_autoextend_incrementIntegerGlobal
innodb_background_drop_list_emptyBooleanGlobal
innodb_buffer_pool_dump_at_shutdownBooleanGlobal
innodb_buffer_pool_dump_nowBooleanGlobal
innodb_buffer_pool_dump_pctIntegerGlobal
innodb_buffer_pool_filenameFile nameGlobal
innodb_buffer_pool_load_abortBooleanGlobal
innodb_buffer_pool_load_nowBooleanGlobal
innodb_buffer_pool_sizeIntegerGlobal
innodb_change_buffer_max_sizeIntegerGlobal
innodb_change_bufferingEnumerationGlobal
innodb_change_buffering_debugIntegerGlobal
innodb_checksum_algorithmEnumerationGlobal
innodb_cmp_per_index_enabledBooleanGlobal
innodb_commit_concurrencyIntegerGlobal
innodb_compress_debugEnumerationGlobal
innodb_compression_failure_threshold_pctIntegerGlobal
innodb_compression_levelIntegerGlobal
innodb_compression_pad_pct_maxIntegerGlobal
innodb_concurrency_ticketsIntegerGlobal
innodb_deadlock_detectBooleanGlobal
innodb_default_row_formatEnumerationGlobal
innodb_disable_resize_buffer_pool_debugBooleanGlobal
innodb_disable_sort_file_cacheBooleanGlobal
innodb_fast_shutdownIntegerGlobal
innodb_fil_make_page_dirty_debugIntegerGlobal
innodb_file_formatStringGlobal
innodb_file_format_maxStringGlobal
innodb_file_per_tableBooleanGlobal
innodb_fill_factorIntegerGlobal
innodb_flush_log_at_timeoutIntegerGlobal
innodb_flush_log_at_trx_commitEnumerationGlobal
innodb_flush_neighborsEnumerationGlobal
innodb_flush_syncBooleanGlobal
innodb_flushing_avg_loopsIntegerGlobal
innodb_ft_aux_tableStringGlobal
innodb_ft_enable_diag_printBooleanGlobal
innodb_ft_enable_stopwordBooleanBoth
innodb_ft_num_word_optimizeIntegerGlobal
innodb_ft_result_cache_limitIntegerGlobal
innodb_ft_server_stopword_tableStringGlobal
innodb_ft_user_stopword_tableStringBoth
innodb_io_capacityIntegerGlobal
innodb_io_capacity_maxIntegerGlobal
innodb_large_prefixBooleanGlobal
innodb_limit_optimistic_insert_debugIntegerGlobal
innodb_lock_wait_timeoutIntegerBoth
innodb_log_checkpoint_nowBooleanGlobal
innodb_log_checksumsBooleanGlobal
innodb_log_compressed_pagesBooleanGlobal
innodb_log_write_ahead_sizeIntegerGlobal
innodb_lru_scan_depthIntegerGlobal
innodb_max_dirty_pages_pctNumericGlobal
innodb_max_dirty_pages_pct_lwmNumericGlobal
innodb_max_purge_lagIntegerGlobal
innodb_max_purge_lag_delayIntegerGlobal
innodb_max_undo_log_sizeIntegerGlobal
innodb_merge_threshold_set_all_debugIntegerGlobal
innodb_monitor_disableStringGlobal
innodb_monitor_enableStringGlobal
innodb_monitor_resetEnumerationGlobal
innodb_monitor_reset_allEnumerationGlobal
innodb_old_blocks_pctIntegerGlobal
innodb_old_blocks_timeIntegerGlobal
innodb_online_alter_log_max_sizeIntegerGlobal
innodb_optimize_fulltext_onlyBooleanGlobal
innodb_print_all_deadlocksBooleanGlobal
innodb_purge_batch_sizeIntegerGlobal
innodb_purge_rseg_truncate_frequencyIntegerGlobal
innodb_random_read_aheadBooleanGlobal
innodb_read_ahead_thresholdIntegerGlobal
innodb_replication_delayIntegerGlobal
innodb_rollback_segmentsIntegerGlobal
innodb_saved_page_number_debugIntegerGlobal
innodb_spin_wait_delayIntegerGlobal
innodb_stats_auto_recalcBooleanGlobal
innodb_stats_include_delete_markedBooleanGlobal
innodb_stats_methodEnumerationGlobal
innodb_stats_on_metadataBooleanGlobal
innodb_stats_persistentBooleanGlobal
innodb_stats_persistent_sample_pagesIntegerGlobal
innodb_stats_sample_pagesIntegerGlobal
innodb_stats_transient_sample_pagesIntegerGlobal
innodb_status_outputBooleanGlobal
innodb_status_output_locksBooleanGlobal
innodb_strict_modeBooleanBoth
innodb_support_xaBooleanBoth
innodb_sync_spin_loopsIntegerGlobal
innodb_table_locksBooleanBoth
innodb_thread_concurrencyIntegerGlobal
innodb_thread_sleep_delayIntegerGlobal
innodb_tmpdirDirectory nameBoth
innodb_trx_purge_view_update_only_debugBooleanGlobal
innodb_trx_rseg_n_slots_debugIntegerGlobal
innodb_undo_log_truncateBooleanGlobal
innodb_undo_logsIntegerGlobal
insert_idIntegerSession
interactive_timeoutIntegerBoth
internal_tmp_disk_storage_engineEnumerationGlobal
join_buffer_sizeIntegerBoth
keep_files_on_createBooleanBoth
key_buffer_sizeIntegerGlobal
key_cache_age_thresholdIntegerGlobal
key_cache_block_sizeIntegerGlobal
key_cache_division_limitIntegerGlobal
keyring_aws_cmk_idStringGlobal
keyring_aws_regionEnumerationGlobal
keyring_encrypted_file_dataFile nameGlobal
keyring_encrypted_file_passwordStringGlobal
keyring_file_dataFile nameGlobal
keyring_okv_conf_dirDirectory nameGlobal
keyring_operationsBooleanGlobal
last_insert_idIntegerSession
lc_messagesStringBoth
lc_time_namesStringBoth
local_infileBooleanGlobal
lock_wait_timeoutIntegerBoth
log_bin_trust_function_creatorsBooleanGlobal
log_bin_use_v1_row_eventsBooleanGlobal
log_builtin_as_identified_by_passwordBooleanGlobal
log_error_verbosityIntegerGlobal
log_outputSetGlobal
log_queries_not_using_indexesBooleanGlobal
log_slow_admin_statementsBooleanGlobal
log_slow_slave_statementsBooleanGlobal
log_statements_unsafe_for_binlogBooleanGlobal
log_syslogBooleanGlobal
log_syslog_facilityStringGlobal
log_syslog_include_pidBooleanGlobal
log_syslog_tagStringGlobal
log_throttle_queries_not_using_indexesIntegerGlobal
log_timestampsEnumerationGlobal
log_warningsIntegerGlobal
long_query_timeNumericBoth
low_priority_updatesBooleanBoth
master_info_repositoryStringGlobal
master_verify_checksumBooleanGlobal
max_allowed_packetIntegerBoth
max_binlog_cache_sizeIntegerGlobal
max_binlog_sizeIntegerGlobal
max_binlog_stmt_cache_sizeIntegerGlobal
max_connect_errorsIntegerGlobal
max_connectionsIntegerGlobal
max_delayed_threadsIntegerBoth
max_error_countIntegerBoth
max_execution_timeIntegerBoth
max_heap_table_sizeIntegerBoth
max_insert_delayed_threadsIntegerBoth
max_join_sizeIntegerBoth
max_length_for_sort_dataIntegerBoth
max_points_in_geometryIntegerBoth
max_prepared_stmt_countIntegerGlobal
max_relay_log_sizeIntegerGlobal
max_seeks_for_keyIntegerBoth
max_sort_lengthIntegerBoth
max_sp_recursion_depthIntegerBoth
max_tmp_tablesIntegerBoth
max_user_connectionsIntegerBoth
max_write_lock_countIntegerGlobal
min_examined_row_limitIntegerBoth
multi_range_countIntegerBoth
myisam_data_pointer_sizeIntegerGlobal
myisam_max_sort_file_sizeIntegerGlobal
myisam_repair_threadsIntegerBoth
myisam_sort_buffer_sizeIntegerBoth
myisam_stats_methodEnumerationBoth
myisam_use_mmapBooleanGlobal
mysql_firewall_modeBooleanGlobal
mysql_firewall_traceBooleanGlobal
mysql_native_password_proxy_usersBooleanGlobal
mysqlx_connect_timeoutIntegerGlobal
mysqlx_idle_worker_thread_timeoutIntegerGlobal
mysqlx_max_allowed_packetIntegerGlobal
mysqlx_max_connectionsIntegerGlobal
mysqlx_min_worker_threadsIntegerGlobal
ndb_allow_copying_alter_tableBooleanBoth
ndb_autoincrement_prefetch_szIntegerBoth
ndb_batch_sizeIntegerBoth
ndb_blob_read_batch_bytesIntegerBoth
ndb_blob_write_batch_bytesIntegerBoth
ndb_cache_check_timeIntegerGlobal
ndb_clear_apply_statusBooleanGlobal
ndb_data_node_neighbourIntegerGlobal
ndb_default_column_formatEnumerationGlobal
ndb_default_column_formatEnumerationGlobal
ndb_deferred_constraintsIntegerBoth
ndb_deferred_constraintsIntegerBoth
ndb_distributionEnumerationGlobal
ndb_distributionEnumerationGlobal
ndb_eventbuffer_free_percentIntegerGlobal
ndb_eventbuffer_max_allocIntegerGlobal
ndb_extra_loggingIntegerGlobal
ndb_force_sendBooleanBoth
ndb_fully_replicatedBooleanBoth
ndb_index_stat_enableBooleanBoth
ndb_index_stat_optionStringBoth
ndb_join_pushdownBooleanBoth
ndb_log_binlog_indexBooleanGlobal
ndb_log_empty_epochsBooleanGlobal
ndb_log_empty_epochsBooleanGlobal
ndb_log_empty_updateBooleanGlobal
ndb_log_empty_updateBooleanGlobal
ndb_log_exclusive_readsBooleanBoth
ndb_log_exclusive_readsBooleanBoth
ndb_log_update_as_writeBooleanGlobal
ndb_log_update_minimalBooleanGlobal
ndb_log_updated_onlyBooleanGlobal
ndb_optimization_delayIntegerGlobal
ndb_read_backupBooleanGlobal
ndb_recv_thread_activation_thresholdIntegerGlobal
ndb_recv_thread_cpu_maskBitmapGlobal
ndb_report_thresh_binlog_epoch_slipIntegerGlobal
ndb_report_thresh_binlog_mem_usageIntegerGlobal
ndb_row_checksumIntegerBoth
ndb_show_foreign_key_mock_tablesBooleanGlobal
ndb_slave_conflict_roleEnumerationGlobal
ndb_table_no_loggingBooleanSession
ndb_table_temporaryBooleanSession
ndb_use_exact_countBooleanBoth
ndb_use_transactionsBooleanBoth
ndbinfo_max_bytesIntegerBoth
ndbinfo_max_rowsIntegerBoth
ndbinfo_offlineBooleanGlobal
ndbinfo_show_hiddenBooleanBoth
net_buffer_lengthIntegerBoth
net_read_timeoutIntegerBoth
net_retry_countIntegerBoth
net_write_timeoutIntegerBoth
newBooleanBoth
offline_modeBooleanGlobal
old_alter_tableBooleanBoth
old_passwordsEnumerationBoth
optimizer_prune_levelIntegerBoth
optimizer_search_depthIntegerBoth
optimizer_switchSetBoth
optimizer_traceStringBoth
optimizer_trace_featuresStringBoth
optimizer_trace_limitIntegerBoth
optimizer_trace_max_mem_sizeIntegerBoth
optimizer_trace_offsetIntegerBoth
parser_max_mem_sizeIntegerBoth
performance_schema_show_processlistBooleanGlobal
preload_buffer_sizeIntegerBoth
profilingBooleanBoth
profiling_history_sizeIntegerBoth
pseudo_slave_modeBooleanSession
pseudo_thread_idIntegerSession
query_alloc_block_sizeIntegerBoth
query_cache_limitIntegerGlobal
query_cache_min_res_unitIntegerGlobal
query_cache_sizeIntegerGlobal
query_cache_typeEnumerationBoth
query_cache_wlock_invalidateBooleanBoth
query_prealloc_sizeIntegerBoth
rand_seed1IntegerSession
rand_seed2IntegerSession
range_alloc_block_sizeIntegerBoth
range_optimizer_max_mem_sizeIntegerBoth
rbr_exec_modeEnumerationSession
read_buffer_sizeIntegerBoth
read_onlyBooleanGlobal
read_rnd_buffer_sizeIntegerBoth
relay_log_info_repositoryStringGlobal
relay_log_purgeBooleanGlobal
replication_optimize_for_static_plugin_configBooleanGlobal
replication_sender_observe_commit_onlyBooleanGlobal
require_secure_transportBooleanGlobal
rewriter_enabledBooleanGlobal
rewriter_verboseIntegerGlobal
rpl_semi_sync_master_enabledBooleanGlobal
rpl_semi_sync_master_timeoutIntegerGlobal
rpl_semi_sync_master_trace_levelIntegerGlobal
rpl_semi_sync_master_wait_for_slave_countIntegerGlobal
rpl_semi_sync_master_wait_no_slaveBooleanGlobal
rpl_semi_sync_master_wait_pointEnumerationGlobal
rpl_semi_sync_slave_enabledBooleanGlobal
rpl_semi_sync_slave_trace_levelIntegerGlobal
rpl_stop_slave_timeoutIntegerGlobal
secure_authBooleanGlobal
server_idIntegerGlobal
session_track_gtidsEnumerationBoth
session_track_schemaBooleanBoth
session_track_state_changeBooleanBoth
session_track_system_variablesStringBoth
session_track_transaction_infoEnumerationBoth
sha256_password_proxy_usersBooleanGlobal
show_compatibility_56BooleanGlobal
show_create_table_verbosityBooleanBoth
show_old_temporalsBooleanBoth
slave_allow_batchingBooleanGlobal
slave_checkpoint_groupIntegerGlobal
slave_checkpoint_periodIntegerGlobal
slave_compressed_protocolBooleanGlobal
slave_exec_modeEnumerationGlobal
slave_max_allowed_packetIntegerGlobal
slave_net_timeoutIntegerGlobal
slave_parallel_typeEnumerationGlobal
slave_parallel_workersIntegerGlobal
slave_pending_jobs_size_maxIntegerGlobal
slave_preserve_commit_orderBooleanGlobal
slave_rows_search_algorithmsSetGlobal
slave_sql_verify_checksumBooleanGlobal
slave_transaction_retriesIntegerGlobal
slave_type_conversionsSetGlobal
slow_launch_timeIntegerGlobal
slow_query_logBooleanGlobal
slow_query_log_fileFile nameGlobal
sort_buffer_sizeIntegerBoth
sql_auto_is_nullBooleanBoth
sql_big_selectsBooleanBoth
sql_buffer_resultBooleanBoth
sql_log_binBooleanSession
sql_log_offBooleanBoth
sql_modeSetBoth
sql_notesBooleanBoth
sql_quote_show_createBooleanBoth
sql_safe_updatesBooleanBoth
sql_select_limitIntegerBoth
sql_slave_skip_counterIntegerGlobal
sql_warningsBooleanBoth
stored_program_cacheIntegerGlobal
super_read_onlyBooleanGlobal
sync_binlogIntegerGlobal
sync_frmBooleanGlobal
sync_master_infoIntegerGlobal
sync_relay_logIntegerGlobal
sync_relay_log_infoIntegerGlobal
table_definition_cacheIntegerGlobal
table_open_cacheIntegerGlobal
thread_cache_sizeIntegerGlobal
thread_pool_high_priority_connectionIntegerBoth
thread_pool_max_unused_threadsIntegerGlobal
thread_pool_prio_kickup_timerIntegerGlobal
thread_pool_stall_limitIntegerGlobal
time_zoneStringBoth
timestampNumericSession
tmp_table_sizeIntegerBoth
transaction_alloc_block_sizeIntegerBoth
transaction_allow_batchingBooleanSession
transaction_isolationEnumerationBoth
transaction_prealloc_sizeIntegerBoth
transaction_read_onlyBooleanBoth
transaction_write_set_extractionEnumerationBoth
tx_isolationEnumerationBoth
tx_read_onlyBooleanBoth
unique_checksBooleanBoth
updatable_views_with_limitBooleanBoth
validate_password_check_user_nameBooleanGlobal
validate_password_dictionary_fileFile nameGlobal
validate_password_lengthIntegerGlobal
validate_password_mixed_case_countIntegerGlobal
validate_password_number_countIntegerGlobal
validate_password_policyEnumerationGlobal
validate_password_special_char_countIntegerGlobal
version_tokens_sessionStringBoth
wait_timeoutIntegerBoth

MySQL 5.7 参考手册  /  ...  /  结构化系统变量
5.1.8.3 结构化系统变量

结构化变量与常规系统变量有两个不同之处:

  • 它的值是一个包含指定被认为密切相关的服务器参数的组件的结构。

  • 给定类型的结构化变量可能有多个实例。每一个都有不同的名称,并指代服务器维护的不同资源。

MySQL 支持一种结构化变量类型,它指定控制键缓存操作的参数。键缓存结构化变量具有以下组件:

本节描述引用结构化变量的语法。键缓存变量用于语法示例,但有关键缓存如何操作的具体细节可以在其他地方找到,即第8.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`合法。

  • globalsession、 和 local不是合法的实例名称。 这避免了与引用非结构化系统变量 等符号的冲突 。@@GLOBAL.var_name

目前,前两条规则不可能被违反,因为唯一的结构化变量类型是用于键缓存的类型。如果将来创建其他类型的结构化变量,这些规则可能会具有更大的意义。

除了一个例外,您可以在任何可能出现简单变量名称的上下文中使用复合名称来引用结构化变量组件。例如,您可以使用命令行选项为结构化变量赋值:

$> mysqld --hot_cache.key_buffer_size=64K

在选项文件中,使用以下语法:

[mysqld]
hot_cache.key_buffer_size=64K

如果使用此选项启动服务器,hot_cache除了默认大小为 8MB 的默认密钥缓存之外,它还会创建一个名为 64KB 的密钥缓存。

假设您按如下方式启动服务器:

$> 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_cache10MB 大小的密钥缓存设置为,请使用以下语句之一:

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';

这是能够在任何可能出现简单变量名的地方使用结构化变量名的例外情况。