Homepage » come » Traccia MySQL Queries con mysqlsniffer su Ubuntu

    Traccia MySQL Queries con mysqlsniffer su Ubuntu

    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 funzionerà per le connessioni locali, anche se puoi 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 / percorso / a / 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 / percorso / a / 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: MOSTRA LE COLONNE COMPLETE DA "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:

    Uso: mysqlsniffer [OPZIONI] INTERFACCIA

    OPZIONI:
    -porta 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-hdr 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
    -scarico scaricare tutti i pacchetti in esadecimale
    -aiuto Stampa questo

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

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