想给 MySQL 改端口或者调内存,搜出来都指向同一个文件:my.ini。它是 MySQL 在 Windows 下的主配置文件,服务每次启动时按它加载参数,改对了立竿见影,改错了轻则不生效,重则服务直接起不来。

这个文件在哪

用安装器装的 MySQL,配置文件多数情况在 ProgramData 目录下对应版本的文件夹里,比如默认安装的 MySQL Server 8.0,就在 ProgramData 的 MySQL 文件夹下。注意 ProgramData 是隐藏目录,资源管理器要先打开「显示隐藏项目」。找不到也可以在服务列表里看 MySQL 服务的属性,启动参数里的 defaults-file 指向的就是它真正读取的配置。

Linux 下对应的是 /etc/my.cnf,参数写法接近,位置不同。

常用的几个参数

文件按节分组,[mysqld] 节下面的才是服务端参数,写错节等于白改。常见的几项:

  • port:服务端口,默认 3306。
  • character-set-server:默认字符集,一般设 utf8mb4。
  • max_connections:最大连接数,默认值偏小,并发大的业务要调。
  • innodb_buffer_pool_size:InnoDB 缓存池,专用数据库服务器可以给到物理内存的一半左右。

改完保存,编码别带 BOM,然后重启服务:管理员命令提示符执行 net stop mysql80 再 net start mysql80,服务名以本机服务列表显示的为准。

改了不生效的三个常见原因

一是改错文件,机器上可能残留多个 my.ini,服务实际读的只有 defaults-file 指定的那个;二是没重启服务,大部分参数只在启动时加载;三是参数拼写或节位置错了,翻数据目录下的错误日志,能看到具体哪一项有问题。

实际判断:动配置前先复制一份备份,一次只改一两项,重启验证,出问题能立刻退回,这比一次改一堆然后排查省时间。