Obtenha nomes de usuários e endereços IP via tcpdump (ou outra ferramenta de captura) conectando-se a um servidor MySQL

Obtenha nomes de usuários e endereços IP via tcpdump (ou outra ferramenta de captura) conectando-se a um servidor MySQL

Tenho o MySQL instalado no meu servidor Ubuntu. Como eu gostaria de limpar meus usuários que estão atualmente ativos no MySQL, gostaria de verificar primeiro quais usuários - e de qual host - estão se conectando ao servidor MySQL.

A única coisa que preciso é: qual host está se conectando e qual nome de usuário é usado.

Tentei realizar esta tarefa com tcpdump, mas sem sorte até agora. Parece fácil obter toda a consulta, mas não recebo as informações mencionadas acima. O servidor é muito utilizado, se não houver outra opção posso habilitar o log de consulta geral, mas se for possível gostaria de evitar esta opção.

Alguém tem uma dica para mim sobre como posso realizar essa tarefa?

Responder1

  1. listar sessões atualmente ativas

No prompt do mysql, você pode digitar o seguinte para exibir as sessões ativas no momento:

mysql> show processlist;

Ou esta consulta mysql (que retorna as mesmas informações):

mysql> select * from information_schema.processlist;

E você só pode obter o par {user,host} assim:

mysql> select User,Host from information_schema.processlist;
  1. registrar e exibir o histórico de consultas.

Ative o log de consulta mysql

set global log_output = 'table';
set global general_log = 'on';

Veja todas as consultas executadas

select * from mysql.general_log;

Veja o timestamp, o host_user e a consulta relacionada:

select event_time,user_host,argument from mysql.general_log;

Espero que ajude.

informação relacionada