У меня есть сервер mysql, который иногда возвращает ошибку «слишком много соединений». Я работал с администратором сервера, чтобы настроить mysql и серверные vars на лучшее. Мы считаем, что это связано с запросом, который занимает очень много времени, затем блокирует таблицу и, таким образом, создает резервные копии других.

Интересно, как лучше всего решить эту проблему?

1
David 27 Ноя 2009 в 15:48
Вы уверены, что дело не в утечке соединений? т.е. установление соединения с MySQL, а затем его не освобождение.
 – 
Dominic Rodger
27 Ноя 2009 в 15:51
Количество подключений в основном всегда нахожу. Это просто происходит случайно, что заставляет меня поверить, что это запрос, который иногда вызывается. Но попытаться найти это - головная боль.
 – 
David
27 Ноя 2009 в 15:51

2 ответа

Лучший ответ

Если вы можете добраться до терминала, когда столкнетесь с этой проблемой, запустите:

SHOW PROCESSLIST;

Или

SHOW FULL PROCESSLIST;

Ищите любые запросы, которые не успевают закончиться и могут блокировать ваши таблицы.

Однако «слишком много соединений» также может быть результатом мошеннического кода, который неправильно закрывает соединения, которые он открывает (как указал Доминик выше).

1
please delete meplease delete me 21 Дек 2009 в 20:02

Пробовали ли вы включить журнал медленных запросов? . Его вывод может быть очень полезен для перехвата запросов такого типа.

2
Rob Van Dam 19 Дек 2009 в 09:09