Ver conexões MySQL ativas por usuário


9

Preciso de uma consulta que me forneça o número ativo ou aberto de conexões com um determinado banco de dados para um determinado usuário. Eu tenho procurado por horas e não consegui nada até agora. Estou perto, então aqui está o que eu tentei.

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

  2. SHOW STATUS LIKE '%onn%';

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

Eu trabalho para uma empresa de hospedagem na web, e um de nossos clientes continua atingindo seu max_user_connectionslimite, portanto, na solução de problemas, por que eu preciso saber quantas conexões o usuário está usando no momento, já que ele não é um servidor compartilhado. Atualmente, estou usando o MySQL (InnoDB) versão 5.5.36. Qualquer ajuda seria muito apreciada!

Respostas:


11

O que você precisa é uma discriminação por usuário e nome do host, juntamente com um total

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;

Isso manipulará o endereço do host que possui dois pontos que separa o nome do host e o número da porta

Espero que todos não estejam logando como root


-1

Houve uma discussão em detalhes para isso: https://dba.stackexchange.com/a/47160/385

Em resumo, as consultas que você precisa são

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

e

SHOW VARIABLES LIKE 'max_user_connections';

ATUALIZAR

Talvez essa não seja uma resposta direta à sua pergunta, mas de acordo com http://dev.mysql.com/doc/refman/5.5/en/user-resources.html O MySQL permite limitar o número de acessos por hora . Portanto, talvez isso responda por que um determinado usuário atinge o limite enquanto o número de conexões deles é pequeno, de acordo com a lista de processos. Infelizmente, não consigo encontrar referências sobre como obter o contador de acesso.


Eu não quero alterar o número de max_user_connections ou visualizar max_user_connections, eu sei como fazer isso. Quero ver quantas dessas conexões um usuário específico está ativo.
Will Hughes
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.