Acompanhe as consultas do MySQL com o mysqlsniffer no Ubuntu
Você tem um servidor de banco de dados de produção e não é possível ativar o log de consulta ... então, como você vê as consultas sendo executadas no banco de dados??
A resposta: use um sniffer de rede modificado para analisar os pacotes MySQL e decodificá-los. Você terá que fazer uma pequena compilação, mas valerá a pena. Observe que isso geralmente não funcionará para conexões locais, embora você seja bem-vindo para tentar.
Primeiro, você precisa instalar o libpcap-dev, que é a biblioteca de desenvolvimento que permite que um aplicativo detecte pacotes de rede.
sudo apt-get instala libpcap-dev
Agora vamos fazer um diretório, baixar o código fonte e compilá-lo
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com/code/mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
Neste ponto, temos um novo executável chamado mysqlsniffer em nosso diretório de origem. Você pode copiá-lo onde quiser (em algum lugar do caminho seria útil)
Para executar o mysqlsniffer, você precisa especificar a interface de rede na qual o MySQL está escutando. Para mim, é eth0.
sudo / caminho / para / mysqlsniffer eth0
Muitas coisas começam a voar ... vamos filtrar um pouco mais para que possamos obter as consultas e não todos os dados em excesso.
$ sudo / caminho / para / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> servidor: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> servidor: COM_QUERY: SET SESSION sql_mode = ”
192.168.73.1.2622> servidor: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> servidor: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> server: COM_QUERY: MOSTRAR COLUNAS COMPLETAS DE 'db2842_howto'. 'Wp_users'
Ah, agora estamos lá ... todos os tipos de informações de consulta, sem ter que reiniciar o MySQL.
Aqui estão as opções completas para o comando:
Uso: mysqlsniffer [OPTIONS] INTERFACE
OPÇÕES:
-porta N Ouça o MySQL na porta número N (padrão 3306)
-verbose Mostrar informações extras de pacotes
-tcp-ctrl Mostra pacotes de controle TCP (SYN, FIN, RST, ACK)
-net-hdrs Mostra os principais valores de cabeçalho IP e TCP
-no-mysql-hdrs Não mostra o cabeçalho do MySQL (ID e comprimento do pacote)
-Estado Show Estado
-v40 servidor MySQL é a versão 4.0
-despejo despejar todos os pacotes em hex
-ajuda Imprima esta
Código-fonte original e mais informações em:
http://hackmysql.com/mysqlsniffer
Se você estiver executando em um servidor de desenvolvimento, seria mais fácil apenas ativar o log de consulta.