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.