Отладка MySQL слишком много проблем с подключением

Время от времени я получаю ошибку "слишком много соединений" с моей базой данных MySQL, если я

show status like 'Conn%';

Я получаю такой результат

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 291   | 
+---------------+-------+
1 row in set (0.00 sec)

но если я смотрю на список процессов с

SHOW FULL PROCESSLIST; 

Я вижу только несколько реальных связей

+-----+---------+------------------------------+---------+---------+------+-------+-----------------------+
| Id  | User    | Host                         | db      | Command | Time | State | Info                  |
+-----+---------+------------------------------+---------+---------+------+-------+-----------------------+
|  28 | www     | webhost01:38876              | webapp  | Sleep   |    2 |       | NULL                      | 
|  29 | www     | webhost01:53322              | webapp  | Sleep   |    2 |       | NULL                      | 
|  30 | www     | webhost01:45583              | webapp  | Sleep   |    2 |       | NULL                      | 
|  31 | www     | webhost01:35779              | webapp  | Sleep   |    2 |       | NULL                      | 
|  32 | www     | webhost01:49122              | webapp  | Sleep   |    2 |       | NULL                      | 
|  36 | root    | localhost                    | NULL    | Query   |    0 | NULL  | SHOW FULL PROCESSLIST     | 
| 126 | stats   | localhost                    | stats   | Sleep   | 1056 |       | NULL                      | 
+-----+---------+------------------------------+---------+---------+------+-------+-----------------------+

Как я могу увидеть все соединения? Я подозреваю, что некоторые приложения не закрывают свои соединения, как я могу отладить / предотвратить это?

2 ответа

Решение

SHOW STATUS значение, которое вы хотите посмотреть, Threads_connected, Так как Connections показывает только накопленное количество соединений с момента запуска демона.

Часто важно сравнить стоимость Max_used_connections против SHOW VARIABLES ценности max_connections а также max_user_connections,

Количество идентификаторов вашего процесса от SHOW PROCESSLIST не очень высокий, что предполагает, что одно из этих значений может быть установлено неоправданно низким, если MySQL не был перезапущен с момента последней ошибки.

Переменная "Соединения" - это счетчик подключений, он равен нулю при запуске сервера MySQL. см. руководство

Другие вопросы по тегам