mysql-too-many-connections

MySQL Too many connections 的定位与修复

现象

应用报 ERROR 1040 (HY000): Too many connections,新连接被拒绝。已有连接可能仍能工作,但业务开始大量失败。

快速定位

SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Threads_running';
SHOW VARIABLES LIKE 'max_connections';
SHOW PROCESSLIST;
SELECT user, host, command, count(*) FROM information_schema.processlist
GROUP BY user, host, command ORDER BY count(*) DESC;
mysqladmin -u root -p status

常见根因

  1. 应用连接池配置过大或连接泄漏。
  2. 慢查询/锁等待占住连接,连接数持续上涨。
  3. max_connections 太低,或系统文件描述符限制。
  4. 大量 Sleep 连接没有回收。
  5. 连接代理/中间件没有正确复用连接。

修复

相关命令