Traccia MySQL Queries con mysqlsniffer su Ubuntu

Traccia MySQL Queries con mysqlsniffer su Ubuntu
Traccia MySQL Queries con mysqlsniffer su Ubuntu

Video: Traccia MySQL Queries con mysqlsniffer su Ubuntu

Video: Traccia MySQL Queries con mysqlsniffer su Ubuntu
Video: Excel: Inserire dati in automatico. Tutorial 2 - YouTube 2024, Aprile
Anonim

Hai un server database di produzione e non puoi abilitare la registrazione delle query … quindi come vedi le query eseguite sul database?

La risposta: utilizzare uno sniffer di rete modificato per analizzare i pacchetti MySQL e decodificarli. Dovrai fare una piccola compilazione, ma ne varrà la pena. Nota che questo di solito non funziona con le connessioni locali, anche se sei invitato a provare.

Innanzitutto, è necessario installare libpcap-dev, che è la libreria di sviluppo che consente a un'applicazione di sniffare i pacchetti di rete.

sudo apt-get install libpcap-dev

Ora facciamo una directory, scarichiamo il codice sorgente e lo compiliamo

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

A questo punto, abbiamo un nuovo eseguibile lucido chiamato mysqlsniffer nella nostra directory dei sorgenti. Puoi copiarlo dove vuoi (da qualche parte nel percorso sarebbe utile)

Per eseguire mysqlsniffer, è necessario specificare l'interfaccia di rete su cui è in ascolto MySQL. Per me, è eth0.

sudo /path/to/mysqlsniffer eth0

Un sacco di cose inizia a volare … filtriamo un po 'di più in modo che possiamo ottenere solo le query e non tutti i dati in eccesso.

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

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode 192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=” 192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE 192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`

Ah, ora ci siamo … tutti i tipi di informazioni di query, senza dover riavviare MySQL.

Ecco le opzioni complete per il comando:

Utilizzo: mysqlsniffer [OPZIONI] INTERFACCIA

OPZIONI: -Port N Ascolta MySQL sul numero di porta N (predefinito 3306) -Verbose Mostra informazioni extra sui pacchetti -Tcp-ctrl Mostra pacchetti di controllo TCP (SYN, FIN, RST, ACK) -Net-hdrs Mostra i principali valori di intestazione IP e TCP -No-mysql-hdrs Non mostra l'intestazione di MySQL (ID pacchetto e lunghezza) -Stato Mostra stato -V40 Il server MySQL è la versione 4.0 -Dump Scarica tutti i pacchetti in hex -Help Stampa questo

Codice sorgente originale e ulteriori informazioni su: https://hackmysql.com/mysqlsniffer

Se si esegue un server di sviluppo, sarebbe più semplice attivare la registrazione delle query.

Consigliato: