MySQL 的系统变量(即"配置参数")数量非常庞大------5.7/8.0/8.4/9.x 各版本累计定义超过 1000 个,且随版本不断新增、弃用和改名。要把每一个都逐一列出并不现实,但可以按作用域把它们完整地归类,再逐类说明每个参数的用途、作用与版本差异。下面这份按类别组织的参考,覆盖了 MySQL 主要参数族(InnoDB、连接、内存、日志复制、字符集、优化器、安全、组件等),并标注了关键版本变化。
阅读约定
- 版本标注:
5.7 / 8.0 / 8.4 / 9.x;未标注者多为跨版本通用。- 作用层级:GLOBAL(全局,影响新会话)/ SESSION(会话级);"动态"指可
SET在线修改,"静态"指需重启。- 参数来源优先级(决定"改了是否生效"):命令行 >
SET PERSIST持久化值 > 配置文件 > 编译默认值。- 查看方式:
SHOW VARIABLES LIKE 'xxx';、SELECT @@global.xxx;;来源与范围可查performance_schema.variables_info(VARIABLE_SOURCE含 COMPILED/GLOBAL/SERVER/EXPLICIT/EXTRA/USER/LOGIN/COMMAND_LINE/PERSISTED/DYNAMIC)。
一、参数体系总览
| 维度 | 说明 |
|---|---|
| 参数 vs 状态量 | 参数(variable)可设置;状态量(status)只读,如 Threads_connected、Slow_queries |
| 作用域 | 全局 GLOBAL / 会话 SESSION |
| 生效方式 | 动态(可 SET)/ 静态(需重启) |
| 持久化 | 8.0 起支持 SET PERSIST,写入持久化文件 |
| 命名族 | innodb_*、binlog_*、replica_*/slave_*、group_replication_*、performance_schema_*、character_set_*、optimizer_*、admin_*、audit_log*、validate_password* 等 |
二、InnoDB 参数(核心)
2.1 缓冲池与内存
| 参数 | 用途与作用 | 版本 |
|---|---|---|
innodb_buffer_pool_size |
InnoDB 缓存表与索引数据的内存区,最核心的性能参数;过大易启动失败或 OOM | 5.7/8.0/8.4/9.x |
innodb_buffer_pool_instances |
将缓冲池拆分为多个实例以降低争用;>1 时缓冲池不能小于 1GiB | 5.7+ |
innodb_buffer_pool_chunk_size |
缓冲池扩容/缩容的块粒度 | 5.7.5+ |
innodb_buffer_pool_dump_at_shutdown / _load_now / _dump_now |
关机时转储、启动时预热缓冲池,减少冷启动抖动 | 5.6+ |
innodb_change_buffer_max_size |
change buffer 占缓冲池上限比例 | 5.6+ |
innodb_log_buffer_size |
redo 日志内存缓冲大小 | 通用 |
innodb_sort_buffer_size |
创建索引时排序缓冲 | 通用 |
innodb_additional_mem_pool_size |
旧版内部数据结构内存池(已移除) | 5.6 及更早 |
2.2 刷盘与 I/O
| 参数 | 用途与作用 | 版本 |
|---|---|---|
innodb_flush_log_at_trx_commit |
事务提交时 redo 刷盘策略(1 最安全,0/2 性能优先但有丢数据窗口) | 通用 |
innodb_flush_log_at_timeout |
非 1 时的日志刷盘周期 | 通用 |
innodb_flush_method |
数据/日志文件刷新方式;8.4 实测 Unix 默认仍为 fsync(网传 O_DIRECT 不实) |
通用 |
innodb_flush_neighbors |
刷脏页时是否顺带刷相邻页 | 5.6+ |
innodb_flush_sync |
是否允许在 checkpoint 压力下突破 io_capacity 上限 | 8.0+ |
innodb_io_capacity / innodb_io_capacity_max |
后台任务每秒可用 IOPS 预算;page cleaner 据此批量刷脏页 | 通用 |
innodb_read_io_threads / innodb_write_io_threads |
读/写 I/O 线程数 | 通用 |
innodb_use_native_aio |
是否使用 OS 原生异步 I/O | 通用 |
innodb_use_fdatasync |
用 fdatasync 替代 fsync | 8.0.26+ |
innodb_fsync_threshold |
控制 fsync 聚合阈值 | 8.0+ |
innodb_doublewrite_dir / innodb_doublewrite_pages |
doublewrite 目录与页数 | 8.0+ |
innodb_disable_sort_file_cache |
禁用排序临时文件缓存 | 通用 |
innodb_fast_shutdown |
关机模式(0/1/2) | 通用 |
innodb_force_recovery |
崩溃恢复级别 0--6,应急启动用 | 通用 |
innodb_force_load_corrupted |
强制加载损坏页 | 通用 |
2.3 redo / undo 日志
| 参数 | 用途与作用 | 版本 |
|---|---|---|
innodb_redo_log_capacity |
⭐ redo 日志总容量,取代旧参数 | 8.0.30+ |
innodb_log_file_size / innodb_log_files_in_group |
旧版 redo 文件大小与个数,乘积决定 redo 总量 | 5.7 用;8.0.30 弃用,8.4 仅兼容保留 |
innodb_log_write_ahead_size |
redo 预写对齐 | 通用 |
innodb_log_checksums |
redo 校验和 | 8.0+ |
innodb_log_compressed_pages |
压缩页是否记入 redo | 通用 |
innodb_log_wait_for_flush_spin_hwm |
等待刷盘的自旋阈值 | 8.0+ |
innodb_log_checkpoint_now / _fuzzy_now |
手动触发 checkpoint | 调试用 |
innodb_undo_directory |
undo 表空间目录 | 通用 |
innodb_undo_tablespaces / innodb_undo_logs |
undo 表空间/回滚段数量 | 通用 |
innodb_undo_log_truncate / innodb_max_undo_log_size |
undo 自动截断与上限 | 通用 |
innodb_rollback_segments |
回滚段数量 | 通用 |
innodb_purge_threads / innodb_purge_batch_size |
清除线程数与批量 | 通用 |
innodb_max_purge_lag / _delay |
purge 滞后限流 | 通用 |
2.4 并发、锁与死锁
| 参数 | 用途与作用 | 版本 |
|---|---|---|
innodb_thread_concurrency |
并发进入内核线程数上限(0=不限) | 通用 |
innodb_thread_sleep_delay / innodb_concurrency_tickets |
并发控制相关 | 通用 |
innodb_lock_wait_timeout |
行锁等待超时秒数 | 通用 |
innodb_deadlock_detect |
死锁检测开关 | 8.0+ |
innodb_print_all_deadlocks |
是否把所有死锁写入错误日志 | 通用 |
innodb_rollback_on_timeout |
锁超时是否回滚整个事务 | 通用 |
innodb_spin_wait_delay / _pause_multiplier |
自旋等待 | 通用 |
innodb_sync_array_size / innodb_sync_spin_loops |
同步对象与自旋 | 通用 |
innodb_autoinc_lock_mode |
自增锁模式(0/1/2) | 通用 |
innodb_commit_concurrency |
提交并发 | 通用 |
innodb_table_locks |
是否让 LOCK TABLES 生效于 InnoDB | 通用 |
innodb_support_xa |
XA 支持(8.0 移除) | 5.7 |
2.5 表空间与文件
| 参数 | 用途与作用 | 版本 |
|---|---|---|
innodb_data_file_path / innodb_data_home_dir |
系统表空间文件与目录 | 通用 |
innodb_file_per_table |
每表独立表空间 | 通用 |
innodb_temp_data_file_path / innodb_temp_tablespaces_dir |
临时表空间 | 通用 |
innodb_open_files |
打开文件数上限 | 通用 |
innodb_page_size |
页大小(4K/8K/16K/32K/64K) | 通用 |
innodb_default_row_format |
默认行格式 | 5.7.9+ |
innodb_strict_mode |
严格模式 | 通用 |
innodb_online_alter_log_max_size |
在线 DDL 日志上限 | 通用 |
innodb_autoextend_increment |
表空间自动扩展步长 | 通用 |
innodb_validate_tablespace_paths |
启动校验表空间路径 | 8.0+ |
innodb_directories |
额外扫描的数据目录 | 8.0+ |
2.6 统计信息与优化器辅助
| 参数 | 用途与作用 |
|---|---|
innodb_stats_auto_recalc |
统计信息自动重算 |
innodb_stats_persistent |
持久化统计信息 |
innodb_stats_on_metadata |
元数据查询时是否更新统计 |
innodb_stats_method |
NULL 值统计处理 |
innodb_stats_include_delete_marked |
统计是否含删除标记行 |
2.7 全文索引、压缩、监控
| 参数 | 用途与作用 |
|---|---|
innodb_ft_min_token_size / _max_token_size |
全文索引词长范围 |
innodb_ft_cache_size / _sort_pll_degree |
全文索引缓存与并行度 |
innodb_ft_enable_stopword / _enable_diag_print / _aux_table |
停用词与调试 |
innodb_compression_level / _failure_threshold_pct / _pad_pct_max |
页压缩 |
innodb_checksum_algorithm / innodb_checksums |
校验算法 |
innodb_monitor_enable/disable/reset |
内部监控开关(调试) |
innodb_status_output / _locks |
是否周期性输出引擎状态/锁信息 |
三、连接与会话参数
| 参数 | 用途与作用 | 版本 |
|---|---|---|
max_connections |
最大并发连接数;枢纽参数,派生 thread_cache_size/host_cache_size/back_log,并参与 open_files_limit 预算 | 通用 |
back_log |
未完成握手的连接队列 | 通用 |
thread_cache_size |
线程缓存数(默认 8+max_connections/100,上限 100) | 通用 |
host_cache_size |
主机名解析缓存 | 通用 |
thread_handling |
连接处理模型 | 通用 |
thread_pool_* |
线程池(企业版/Percona) | 企业版 |
max_connect_errors |
连接失败次数阈值 | 通用 |
connect_timeout |
连接握手超时 | 通用 |
wait_timeout / interactive_timeout |
空闲连接超时 | 通用 |
net_read_timeout / net_write_timeout |
读写超时 | 通用 |
net_retry_count |
网络重试次数 | 通用 |
net_buffer_length |
网络缓冲初始大小 | 通用 |
max_allowed_packet |
单包/单行最大字节数 | 通用 |
admin_address / admin_port |
管理端口(注意其连接也占用 max_connections) | 8.0+ |
admin_ssl_* / admin_tls_* |
管理端口 TLS 配置 | 8.0+ |
connection_memory_limit / global_connection_memory_limit / connection_memory_chunk_size |
连接级内存限额 | 8.0+ |
skip_name_resolve |
关闭 DNS 反解 | 通用 |
skip_external_locking |
关闭外部锁定 | 通用 |
max_execution_time |
SELECT 最大执行毫秒数 | 5.7.8+ |
四、内存与临时对象参数
| 参数 | 用途与作用 |
|---|---|
sort_buffer_size |
排序缓冲;仅在排序落盘时增大才有效 |
join_buffer_size |
连接缓冲;8.0 作为 hash join 内存预算可 spill |
read_buffer_size / read_rnd_buffer_size |
顺序/随机读缓冲 |
tmp_table_size / max_heap_table_size |
内存临时表阈值(取较小值),超出转磁盘 |
internal_tmp_mem_storage_engine |
内部临时表引擎(TempTable/MEMORY,8.0) |
internal_tmp_disk_storage_engine |
磁盘临时表引擎(5.7) |
max_length_for_sort_data |
排序行长度阈值 |
max_sort_length |
排序使用字节数 |
query_alloc_block_size / range_alloc_block_size |
解析/范围分配块 |
large_pages / large_page_size |
大页支持 |
bulk_insert_buffer_size |
MyISAM 批量插入缓冲 |
key_buffer_size / key_cache_block_size |
MyISAM 索引缓存 |
五、日志、二进制日志与复制参数
5.1 通用日志
| 参数 | 用途与作用 |
|---|---|
general_log / general_log_file |
通用查询日志开关与文件 |
slow_query_log / slow_query_log_file |
慢查询日志开关与文件 |
long_query_time |
慢查询阈值秒数 |
log_output |
日志输出目的地(FILE/TABLE/NONE) |
log_slow_admin_statements / log_slow_replica_statements |
管理/复制语句是否记慢日志 |
log_slow_extra |
慢日志是否记录额外信息 |
min_examined_row_limit |
慢日志最小检查行数 |
log_timestamps |
日志时间戳时区 |
log_error / log_error_verbosity |
错误日志位置与详细度 |
5.2 二进制日志
| 参数 | 用途与作用 | 版本 |
|---|---|---|
log_bin |
二进制日志开关(复制与备份基础) | 通用 |
log_bin_basename / log_bin_index |
binlog 路径与索引 | 通用 |
binlog_format |
格式(ROW/STATEMENT/MIXED);8.0 默认 ROW | 通用 |
binlog_cache_size / binlog_stmt_cache_size |
事务/非事务 binlog 缓存 | 通用 |
binlog_checksum |
binlog 校验 | 通用 |
binlog_row_image |
行镜像(FULL/MINIMAL/NOBLOB) | 通用 |
binlog_row_event_max_size / binlog_rows_query_log_events |
行事件大小与原 SQL 记录 | 8.0+ |
binlog_expire_logs_seconds |
binlog 保留秒数 | 8.0+ |
expire_logs_days |
binlog 保留天数(旧参数,8.0 弃用) | 5.7 |
binlog_error_action |
binlog 写失败时行为 | 通用 |
binlog_encryption / binlog_rotate_encryption_master_key_at_startup |
binlog 加密 | 8.0+ |
binlog_transaction_compression / _level_zstd |
事务压缩 | 8.0+ |
binlog_group_commit_sync_delay / _no_delay_count |
组提交延迟 | 通用 |
binlog_transaction_dependency_tracking / _history_size |
并行复制依赖跟踪 | 5.7.22+ |
sync_binlog |
每次提交刷 binlog 策略(1 最安全) | 通用 |
sql_log_bin |
当前会话是否记 binlog | 通用 |
max_binlog_size |
单个 binlog 文件大小 | 通用 |
5.3 复制(主从 / 副本)
| 参数 | 用途与作用 | 版本 |
|---|---|---|
server-id |
实例唯一标识(复制必需) | 通用 |
gtid_mode / gtid_executed / gtid_next / gtid_owned |
GTID 复制 | 5.6+ |
enforce_gtid_consistency |
GTID 一致性 | 5.7+ |
replica_* / slave_* |
副本行为(8.0.22 起 slave_* 逐步改名为 replica_*,旧名保留) |
8.0+ |
replica_parallel_workers / slave_parallel_workers |
并行复制工作线程数 | 通用 |
replica_parallel_type / slave_parallel_type |
并行策略 | 5.7 |
replica_skip_errors / slave_skip_errors |
跳过指定错误 | 通用 |
replica_transaction_retries / slave_transaction_retries |
事务重试 | 通用 |
replica_checkpoint_group / _period |
副本 checkpoint | 通用 |
replica_compressed_protocol |
复制协议压缩 | 通用 |
replica_exec_mode / slave_exec_mode |
复制执行模式(IDEMPOTENT/STRICT) | 通用 |
replica_allow_higher_version_source |
允许复制更高版本源 | 8.0.28+ |
log_replica_updates / log_slave_updates |
副本是否写自己的 binlog | 通用 |
read_only / super_read_only |
只读控制 | 通用 |
relay_log / relay_log_basename / relay_log_index / relay_log_info_file |
relay log 配置 | 通用 |
max_relay_log_size |
relay log 大小 | 通用 |
relay_log_purge / relay_log_recovery |
relay log 清理与恢复 | 通用 |
sync_relay_log / sync_source_info / sync_master_info |
刷盘策略 | 通用 |
rpl_semi_sync_master_enabled / _wait_for_slave_count / rpl_semi_sync_slave_enabled |
半同步复制 | 插件 |
source_verify_checksum / master_verify_checksum |
校验源 binlog | 通用 |
report_host / report_port / report_password |
副本上报信息 | 通用 |
auto_increment_increment / auto_increment_offset |
自增步长/偏移(多主) | 通用 |
master_info_repository / relay_log_info_repository |
元数据存储位置(8.0.23 起固定为表) | 5.7/8.0 |
pseudo_replica_mode / pseudo_slave_mode |
伪复制模式(内部) | 通用 |
require_row_format |
要求行格式复制 | 8.0+ |
5.4 Group Replication(MGR)
| 参数 | 用途与作用 |
|---|---|
group_replication_group_name |
复制组名 |
group_replication_start_on_boot |
启动时自动加入组 |
group_replication_local_address |
本地通信地址 |
group_replication_group_seeds |
种子成员 |
group_replication_single_primary_mode |
单主/多主模式 |
group_replication_bootstrap_group |
引导组(仅首次) |
group_replication_auto_increment_increment |
组内自增步长 |
group_replication_member_expel_timeout |
成员驱逐超时 |
group_replication_autorejoin_tries |
自动重加入次数 |
group_replication_exit_state_action |
退出状态动作 |
group_replication_flow_control_* |
流控阈值 |
group_replication_message_cache_size |
消息缓存 |
group_replication_consistency |
一致性级别 |
group_replication_transaction_size_limit |
事务大小上限 |
group_replication_recovery_* / _tls_* |
恢复与 TLS |
六、字符集与排序规则
| 参数 | 用途与作用 |
|---|---|
character_set_server |
服务器默认字符集 |
character_set_database |
默认库字符集 |
character_set_client |
客户端发送语句的字符集 |
character_set_connection |
连接层字符集 |
character_set_results |
结果集字符集 |
character_set_filesystem |
文件系统字符集(默认 binary) |
character_set_system |
系统元数据字符集(通常 utf8mb3) |
character_sets_dir |
字符集目录 |
collation_server / collation_database / collation_connection |
对应排序规则 |
default_collation_for_utf8mb4 |
utf8mb4 默认排序规则 |
lc_time_names |
日期时间本地化语言 |
排查乱码时按"客户端→连接→库→结果集→服务器"逐层比对
character_set_*是否一致。
七、SQL 语义与优化器参数
| 参数 | 用途与作用 | 版本 |
|---|---|---|
sql_mode |
SQL 语义模式集合;8.0 默认含 ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES 等 6 个安全位(5.7 还含 NO_AUTO_CREATE_USER) | 通用 |
optimizer_switch |
优化器特性开关集合 | 通用 |
optimizer_search_depth / optimizer_prune_level |
优化器搜索深度与剪枝 | 通用 |
optimizer_trace |
优化器追踪(调试) | 5.6+ |
eq_range_index_dive_limit |
等值范围索引下潜上限 | 通用 |
range_optimizer_max_mem_size |
范围优化内存上限 | 通用 |
max_join_size |
连接结果行数上限 | 通用 |
sql_big_selects |
允许大结果集 | 通用 |
sql_buffer_result |
强制缓冲结果 | 通用 |
sql_auto_is_null |
NULL 自动判断 | 通用 |
sql_safe_updates |
安全更新(无 WHERE 拒改) | 通用 |
sql_notes / sql_warnings |
备注/告警信息 | 通用 |
sql_require_primary_key |
建表必须带主键 | 8.0+ |
sql_generate_invisible_primary_key |
自动生成隐藏主键 | 8.0.30+ |
big_tables |
大表模式 | 通用 |
end_markers_in_json |
JSON 输出结束标记 | 通用 |
div_precision_increment |
除法精度 | 通用 |
explicit_defaults_for_timestamp |
TIMESTAMP 默认行为 | 通用 |
updatable_views_with_limit |
可更新视图限制 | 通用 |
multi_range_count |
多范围读 | 通用 |
regexp_time_limit / regexp_stack_limit |
正则资源限制 | 8.0+ |
information_schema_stats_expiry |
I_S 统计缓存过期 | 8.0+ |
terminology_use_previous |
术语新旧命名兼容 | 8.0.26+ |
八、存储引擎与表缓存
| 参数 | 用途与作用 | 版本 |
|---|---|---|
default_storage_engine |
默认存储引擎 | 通用 |
default_tmp_storage_engine |
默认临时表引擎 | 通用 |
disabled_storage_engines |
禁用引擎列表 | 通用 |
table_open_cache |
表缓存槽数;过大耗内存且拖慢 shutdown,并受 open_files_limit 压制 | 通用 |
table_open_cache_instances |
表缓存分片 | 通用 |
table_definition_cache |
表定义缓存 | 通用 |
table_encryption_privilege_check |
加密表权限校验 | 8.0+ |
open_files_limit |
进程打开文件上限,反向钳制 max_connections/table_open_cache | 通用 |
keep_files_on_create |
CREATE 覆盖是否保留旧文件 | 通用 |
lower_case_table_names |
表名大小写敏感性(平台相关) | 通用 |
large_files_support |
大文件支持 | 通用 |
myisam_* |
MyISAM 恢复、排序、指针等 | 通用 |
ndb_* |
NDB Cluster 相关 | NDB |
ndbinfo |
NDB 配置信息表 | NDB 8.0+ |
九、Performance Schema
| 参数 | 用途与作用 |
|---|---|
performance_schema |
PFS 总开关(默认 ON,8.0) |
performance_schema_digests_size |
语句摘要表大小 |
performance_schema_accounts_size / _error_size |
账户/错误表大小 |
performance_schema_events_stages_history_long_size |
阶段历史表大小 |
performance_schema_events_statements_history_long_size |
语句历史表大小 |
performance_schema_events_transactions_history_long_size |
事务历史表大小 |
performance_schema_events_waits_history_long_size |
等待历史表大小 |
performance_schema_max_socket_classes / _instances |
socket 仪器 |
performance_schema_session_connect_attrs_size |
连接属性大小 |
PFS 内部内存会随
max_connections和table_open_cache自动定容,评估实例内存时需一并考虑。
十、安全、认证与加密
| 参数 | 用途与作用 | 版本 |
|---|---|---|
default_authentication_plugin |
默认认证插件(8.0 默认 caching_sha2_password) | 5.7/8.0 |
caching_sha2_password_* |
caching_sha2 密钥与格式 | 8.0+ |
sha256_password_* / mysql_native_password_proxy_users |
认证代理 | 通用 |
authentication_ldap_* / _kerberos_* / _fido_* / _openid_connect_* |
企业版外部认证 | 企业版 |
validate_password.* |
密码强度策略(length、dictionary_file、check_user_name 等) | 组件 |
validate_password.changed_characters_percentage |
新旧密码差异要求 | 8.0+ |
default_password_lifetime / password_require_current |
密码有效期与改密校验 | 5.7+/8.0+ |
require_secure_transport |
强制加密传输 | 5.7+ |
secure_file_priv |
文件导入导出目录白名单 | 通用 |
secure_auth |
旧认证安全模式 | 5.7 |
local_infile |
允许 LOAD DATA LOCAL | 通用 |
disconnect_on_expired_password |
密码过期是否断连 | 通用 |
table_encryption_privilege_check / default_table_encryption |
表加密 | 8.0+ |
keyring_* |
密钥环组件(如 HashiCorp、OCI) | 组件 |
block_encryption_mode |
块加密算法模式 | 通用 |
auto_generate_certs |
自动生成 SSL 证书 | 8.0+ |
ssl_ca/cert/key/cipher/crl/capath、tls_version、tls_ciphersuites |
TLS 配置 | 通用 |
protocol_compression_algorithms |
协议压缩算法 | 8.0+ |
activate_all_roles_on_login / mandatory_roles |
角色激活 | 8.0+ |
check_proxy_users / proxy_user |
代理用户 | 通用 |
offline_mode |
离线模式(仅管理员可连) | 5.7.5+ |
十一、审计、组件与插件
| 参数 | 用途与作用 | 版本 |
|---|---|---|
audit_log_buffer_size / audit_log.buffer_size |
审计缓冲 | 企业版/组件 |
audit_log_file / audit_log_database / audit_log.max_size |
审计输出位置与大小 | 企业版/组件 |
audit_log_connection_policy / audit_log.current_session |
审计记录范围 | 企业版 |
audit_log_compression / audit_log_encryption |
审计压缩与加密 | 8.0+ |
audit_log_read_buffer_size / audit_log_flush_interval_seconds |
审计读取与刷盘 | 组件 |
audit_log_format_unix_timestamp / audit_log_password_history_keep_days |
审计格式与密码历史 | 8.0+ |
clone_max_network_bandwidth / clone_delay_after_data_drop / clone_block_ddl |
Clone 插件 | 8.0+ |
component_masking.dictionaries_flush_interval_seconds |
数据脱敏组件 | 8.0+ |
enterprise_encryption.rsa_support_legacy_padding |
企业加密兼容 | 8.0+ |
version_tokens_* |
版本令牌 | 5.7+ |
daemon_memcached_option |
memcached 插件 | 5.7/8.0 |
mysqlx_* |
X Plugin | 5.7.12+ |
event_scheduler |
事件调度器 | 通用 |
init_connect / init_file / init_replica |
连接/启动初始化 | 通用 |
十二、其他服务器级参数
| 参数 | 用途与作用 |
|---|---|
datadir / basedir / tmpdir / pid_file / socket / port |
路径与端口 |
plugin_dir |
插件目录 |
server_id |
服务器 ID |
hostname / system_time_zone / time_zone |
主机与时区 |
lower_case_file_system |
文件系统大小写 |
flush_time |
周期性刷盘间隔 |
locking_service |
锁服务 |
timestamp / time_format / datetime_format |
时间格式(旧/兼容) |
have_query_cache |
查询缓存是否存在(8.0 已移除,恒为 NO) |
show_compatibility_56 |
5.7 兼容 5.6 视图 |
session_track_* |
会话跟踪(schema/gtids/system_variables/state_change) |
warning_count / error_count |
会话告警/错误计数 |
version_comment / version_compile_machine / version_compile_os |
版本信息(只读) |
profiling_history_size |
性能分析历史 |
pseudo_thread_id |
伪线程 ID |
十三、版本演进与弃用速查
| 变化 | 说明 |
|---|---|
| 查询缓存 | query_cache_*、have_query_cache 在 8.0 移除 |
| redo 参数 | innodb_log_file_size、innodb_log_files_in_group 自 8.0.30 弃用 ,改用 innodb_redo_log_capacity |
| 复制命名 | slave_* → replica_*(8.0.22+),旧名保留 |
| 复制元数据 | master_info_repository、relay_log_info_repository 在 8.0.23+ 固定为表 |
| 默认认证 | 8.0 默认 caching_sha2_password |
| 默认 sql_mode | 8.0 移除 NO_AUTO_CREATE_USER |
| 默认字符集 | 8.0 默认 utf8mb4 |
| 临时表引擎 | internal_tmp_disk_storage_engine(5.7)→ internal_tmp_mem_storage_engine(8.0) |
| flush_method 默认 | 8.4 实测 Unix 默认仍 fsync(并非网传 O_DIRECT) |
| 参数来源诊断 | 8.0 起 performance_schema.variables_info 可查 VARIABLE_SOURCE |
十四、常见误区
- 改配置文件不生效 :被命令行、
SET PERSIST或错误配置段覆盖------用variables_info的VARIABLE_SOURCE定位。 - 只调一个参数忽略联动 :
max_connections↔open_files_limit↔table_open_cache相互钳制;innodb_buffer_pool_instances>1时缓冲池需 ≥1GiB。 - 参数与状态量混淆 :
Slow_queries、Threads_connected是状态量,不可SET。 - "调大一定更好" :
sort_buffer_size、table_open_cache、innodb_io_capacity都有适用边界。 - 跨版本/跨产品套用同名参数 :
innodb_flush_method、innodb_log_file_size在 MySQL 与 MariaDB 之间行为不同。 - 管理端口不受连接数限制的误解 :
admin_port的连接同样消耗max_connections。
说明 :MySQL 全版本系统变量累计超过 1000 个,上表按作用域归并覆盖了主要参数族及关键版本差异;个别仅存在于特定分支/插件/企业版的参数,请以目标实例的 SHOW VARIABLES 与对应版本文档为准。任何参数调整都应在测试环境验证后再用于生产。