28Jun

Acompanhe consultas MySQL com mysqlsniffer no Ubuntu

Você tem um servidor de banco de dados de produção e você não pode habilitar o registro de consultas. .. então, como você vê as consultas serem executadas contra o banco de dados?

A resposta: use um sniffer de rede modificado para analisar os pacotes MySQL e decodificá-los. Você terá que fazer um pouco de compilação, mas valerá a pena. Observe que isso geralmente não funciona para conexões locais, embora seja bem-vindo para tentar.

Primeiro, você precisa instalar o libpcap-dev, que é a biblioteca de desenvolvimento que permite que um aplicativo cheira pacotes de rede.

sudo apt-get install 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 brilhante chamado mysqlsniffer em nosso diretório de origem. Você pode copiá-lo onde quer que você goste( em algum lugar do caminho seria útil)

Para executar mysqlsniffer, você precisa especificar a interface de rede em que o MySQL está escutando. Para mim, é eth0.

sudo /path/to/ mysqlsniffer eth0

Muitas coisas começam a voar por. .. vamos filtrar isso um pouco mais para que possamos obter as consultas e não todos os dados em excesso.

$ sudo /path/to/ mysqlsniffer -no-mysql-hdrs eth0 |grep COM_QUERY

192.168.73.1.2622 & gt;servidor: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622 & gt;servidor: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 & gt;servidor: COM_QUERY: SET NAMES utf8
192.168.73.1.1636 & gt;servidor: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;servidor: COM_QUERY: MOSTRE COLUMNAS COMPLETAS DE `db2842_howto`.`wp_users`

Ah, agora estamos. .. 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 [OPÇÕES] INTERFACE

OPTIONS:
-port N Escute o MySQL no número da porta N( padrão 3306)
-verbose Mostra informações adicionais do pacote
-tcp-ctrl Mostra o TCPpacotes de controle( SYN, FIN, RST, ACK)
-net-hdrs Mostrar os maiores valores de cabeçalho IP e TCP
-no-mysql-hdrs Não mostrar o cabeçalho MySQL( ID do pacote e comprimento)
-state Mostrar o estado
-v40 MySQLO servidor é a versão 4.0
-dump Dump todos os pacotes em hex
-help Imprima este

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 simplesmente ligar consultaexploração madeireira.