你好,
原因:
SET GLOBAL max_connections=2000; 只会修改 MySQL 当前运行时的设定,重启服务后就会恢复成默认值。要永久生效,必须写入 MySQL 的配置文件 my.cnf。
做法:
- 进入 Zeabur 控制台 → 你的 MySQL 服务 → 配置(Config) 标签
- 编辑
my.cnf,在 [mysqld] 段落加入:
max_connections=2000
- 保存后重启 MySQL 服务
重启后可用 SHOW VARIABLES LIKE 'max_connections'; 确认是否生效。
补充建议:
通常 "too many connections" 的根因不是上限设太低,而是应用程序没有正确关闭连接(缺乏 connection pooling),导致连接一直累积。建议同时排查:
- 在连接正常时执行
SHOW PROCESSLIST;,观察是否有大量 Sleep 状态的连接长时间不释放
- 如果有,请检查连接 MySQL 的应用程序:
- 是否使用了 connection pool(并设置合理的 max pool size)
- 每次查询后是否正确 close/release 连接
- 可一并调整
wait_timeout 和 interactive_timeout(例如设为 60 秒),让闲置连接被自动回收:
wait_timeout=60
interactive_timeout=60
只调高 max_connections 只是延后问题发生,连接泄漏的源头没解决还是会再次爆掉。
如有其他问题,请另开新的贴子,谢谢!