2014-01-08 3 views
2

У меня есть классический many connections ошибка в мое приложение MySQL:Как отследить связи в MySQL

exception 'PDOException' with message 'SQLSTATE[HY000] [1129] Host 
'[IP ADDRESS]' is blocked because of many connection errors; unblock 
with 'mysqladmin flush-hosts'' in /var/www/libs/Database.php:15 

Там есть много написано о том, что вызывает это и как ее решить за счет увеличения лимита, но то, что я не имею был в состоянии определить, как отлаживать мой код. Я предпочел бы закрыть соединение, а не использовать нагрузку.

Есть ли способ запросить MySQL, чтобы определить, откуда идут соединения и как долго они были открыты?

+1

http://stackoverflow.com/questions/7432241/mysql-show-status-active-or-total-connections Может быть, это поможет немного –

+1

'шоу PROCESSLIST;' –

+0

возможный дубликат [Как я могу просматривать вживую MySQL запросы?] (http://stackoverflow.com/questions/568564/how-can-i-view-live-mysql-queries) –

ответ

1
show processlist 

из MySQL кли это покажет вам список процессов запуска, какие команды они работают, и какие IP-адреса они связаны с.

0

Вы можете использовать «SHOW PROCESSLIST;» запрос, чтобы проверить текущие потоки на вашем сервере MySQL, но если у вас несколько серверов, это может быть очень утомительной задачей. У меня 14 серверов MySQL и контроль за простыми соединениями, и их убийство было одной из главных проблем, и весь процесс занимал довольно много времени. Я использую инструмент мониторинга Monyog, который имеет специальную функцию Threads и отображает текущие соединения на всех моих серверах в одном представлении и автоматически обновляется через каждые одну секунду. Это сделало задачу довольно простой в обращении. Кроме того, он дает возможность убить соединение из своего графического интерфейса и предоставляет различные параметры фильтрации.

Смежные вопросы