Просмотр активных подключений MySQL для пользователя

9

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

  1. SHOW STATUS WHERE `variable_name` = 'Threads_connected';

  2. SHOW STATUS LIKE '%onn%';

  3. SELECT * FROM information_schema.processlist WHERE USER='database_user';

Я работаю в компании, предоставляющей услуги веб-хостинга, и один из наших клиентов продолжает превышать свой max_user_connectionsлимит, поэтому при устранении неполадок мне нужно знать, сколько соединений использует его пользователь сейчас, поскольку он не является общим сервером. В настоящее время я использую MySQL (InnoDB) версии 5.5.36. Любая помощь будет принята с благодарностью!

Уилл Хьюз
источник

Ответы:

11

Что вам нужно, это разбивка по пользователю и имени хоста вместе с общим

SELECT IFNULL(usr,'All Users') user,IFNULL(hst,'All Hosts') host,COUNT(1) Connections
FROM
(
    SELECT user usr,LEFT(host,LOCATE(':',host) - 1) hst
    FROM information_schema.processlist
    WHERE user NOT IN ('system user','root')
) A GROUP BY usr,hst WITH ROLLUP;

Это будет обрабатывать адрес хоста с двоеточием, разделяющим имя хоста и номер порта

Я надеюсь, что все не входят в систему как root

RolandoMySQLDBA
источник
-1

Об этом подробно говорилось: https://dba.stackexchange.com/a/47160/385.

Короче говоря, запросы, которые вам нужны

SELECT max_user_connections FROM mysql.user WHERE user='db_user' AND host='localhost';

а также

SHOW VARIABLES LIKE 'max_user_connections';

ОБНОВИТЬ

Возможно, это не прямой ответ на ваш вопрос, но, согласно http://dev.mysql.com/doc/refman/5.5/en/user-resources.html MySQL, позволяет ограничить количество обращений в час . Таким образом, возможно, это отвечает на вопрос, почему определенный пользователь достигает предела, в то время как количество подключений к ним мало согласно списку процессов. К сожалению, я не могу найти ссылку на то, как получить счетчик доступа.

Исаак А. Нугрохо
источник
Я не хочу изменять количество max_user_connections или просматривать max_user_connections, я знаю, как это сделать. Я хочу посмотреть, сколько из этих соединений у конкретного пользователя активны.
Уилл Хьюз