立刻执行SET GLOBAL max_connections 500需SUPER权限并检查ulimit -n及systemd LimitNOFILE限制再用SELECT统计连接来源KILL异常连接长期须配连接池、设timeout、加监控。MySQL 报错 Too many connections 怎么立刻放行直接改 max_connections 全局变量不用重启 MySQL。只要还有至少一个连接可用比如你正用 root 连着就能执行SET GLOBAL max_connections 500;这个值别瞎设太高——Linux 默认单进程文件描述符上限通常是 1024MySQL 每个连接至少占 1 个 fd设到 1000 以上得先确认 ulimit -n 和 mysqld 启动用户的 limits 配置否则 mysqld 会静默失败或后续崩溃。为什么 SET GLOBAL 改了却没生效常见原因就三个权限不足必须有 SUPER 或 SYSTEM_VARIABLES_ADMIN 权限普通 DBA 账号可能没有改的是 session 级写成了 SET max_connections 500缺 GLOBAL这个只影响当前会话完全没用配置文件锁死如果 my.cnf 里写了 max_connections 151 且 MySQL 是 systemd 启动某些发行版如 RHEL/CentOS的 LimitNOFILE 会卡住实际可分配值此时光改变量没用临时调高后怎么查谁在疯狂建连立刻跑这句SELECT user, host, COUNT(*) AS cnt FROM information_schema.processlist GROUP BY user, host ORDER BY cnt DESC LIMIT 10;重点关注 user 为空或为 unauthenticated user 的行——大概率是应用没关连接、DNS 解析失败重试、或者被暴力扫描。另外看 TIME 列超 60 秒还 Sleep 的连接基本是应用层连接池泄漏。别急着 kill先 SHOW PROCESSLIST 对照 PID再用 KILL [id] 逐个清理可疑连接。 Shakespeare 一款人工智能文案软件能够创建几乎任何类型的文案。