MySQL 配置生成器

按硬件画像与使用场景生成带版本标注的 my.cnf,支持 5.7/8.0/8.4 版本联动与单机/主从

部署模式

物理内存

GB
磁盘类型
使用场景
目标版本

并发连接数预估

连接
监听范围

不输出 bind-address 行——默认值 * 即监听全部接口且含 IPv6(显式 0.0.0.0 反而只绑 IPv4);远程可达必须配合账号 HOST 限制与防火墙放行

监听端口

端口
1# MySQL 配置文件(my.cnf)— 由 DevTools 配置生成器输出(参考值,请结合 SHOW STATUS / 慢查询日志 / 监控调整)
2# 目标版本 MySQL 8.0 | 单机 | 场景:通用 OLTP | 内存 4GB | 磁盘 SSD
3# datadir / socket / log-error / pid-file 等安装路径参数请保留安装器生成的值,本文件不输出这些路径
4# 账号与密码属 SQL 层管理(CREATE USER / GRANT),my.cnf 不包含密码配置
5
6[mysqld]
7
8# Connections and Transactions
9port = 3306
10max_connections = 240
11wait_timeout = 28800
12max_allowed_packet = 64M
13skip_name_resolve = ON
14transaction_isolation = REPEATABLE-READ
15
16# Memory and Query Cache
17innodb_buffer_pool_size = 2048M
18innodb_buffer_pool_instances = 8
19
20# Full-Text Search and Tokenizer
21ngram_token_size = 2
22innodb_ft_min_token_size = 3
23innodb_ft_enable_stopword = ON
24
25# Redo Log and Flush
26innodb_log_file_size = 512M
27innodb_flush_log_at_trx_commit = 1
28sync_binlog = 1
29innodb_flush_method = O_DIRECT
30innodb_io_capacity = 2000
31innodb_io_capacity_max = 4000
32
33# Binary Log
34log_bin = ON
35binlog_expire_logs_seconds = 604800
36binlog_format = ROW
37
38# Character Set
39character_set_server = utf8mb4
40collation_server = utf8mb4_0900_ai_ci
41
42# Authentication
43default_authentication_plugin = caching_sha2_password
44
45# Logging and Slow Queries
46slow_query_log = ON
47long_query_time = 1

免责声明:输出为参考值,需结合 SHOW STATUS / 慢查询 / 监控数据持续调整;所有计算均在浏览器本地完成,数据不上传。

常见问题

生成的推荐值能直接用于生产环境吗?
可以作为起点使用。生成值按你填写的内存、磁盘、场景与并发画像计算,打开即是合法可用的 my.cnf,但输出为参考值,上线前请结合 SHOW STATUS、慢查询日志与监控数据持续调整,重要变更先在预发环境验证。
为什么没有密码、root 等账号配置项?
my.cnf 不管理账号与密码——账号创建与授权属 SQL 层(CREATE USER / GRANT),密码不应以明文形式写入配置文件。监听范围放开远程后,请用账号的 HOST 限定来源网段(如 CREATE USER ... @'10.0.0.%')替代网络层的粗放放行。
为什么没有 sql_mode 和 lower_case_table_names 配置项?
两者都是改动风险大于收益的参数:显式覆盖 sql_mode 极易破坏既有 SQL(如 ONLY_FULL_GROUP_BY 引发的报错);lower_case_table_names 在 MySQL 8.0 初始化后改值服务器会直接拒绝启动,必须在初始化前确定。如需调整请查阅官方文档并在初始化阶段决策。
版本徽章与"废弃 → 替代参数"提示是什么意思?
徽章表示该参数自对应轴点版本起引入(如 8.0+)。切换目标版本时,晚于该版本引入的参数自动隐藏,已废弃/改名的参数显示"废弃 → 替代"提示且不写入配置文件(如 5.7 输出 tx_isolation、8.0 起改用 transaction_isolation)。补丁级引入的新名参数只在 8.4 轴输出,避免 8.0 早期补丁版因未知变量启动失败。
配置了 ngram 参数,中文全文搜索为什么还是搜不到?
conf 里的 ngram_token_size 只是服务器级默认分词长度——FULLTEXT 索引必须显式用 FULLTEXT ... WITH PARSER ngram 建才走中文分词。已有索引改用分词器需要重建:ALTER TABLE ... ADD FULLTEXT INDEX ... WITH PARSER ngram。没有 ngram parser 的索引仍按默认规则切词,中文按整句处理自然搜不到。

相关工具