28Jun
Sie haben einen Produktionsdatenbankserver, und Sie können die Abfrageprotokollierung nicht aktivieren. .. Wie sehen Sie also, dass die Abfragen für die Datenbank ausgeführt werden?
Die Antwort: Verwenden Sie einen modifizierten Netzwerk-Sniffer, um die MySQL-Pakete zu analysieren und zu dekodieren. Du musst ein wenig kompilieren, aber es wird sich lohnen. Beachten Sie, dass dies normalerweise nicht für lokale Verbindungen funktioniert, obwohl Sie es gerne versuchen.
Zunächst müssen Sie libpcap-dev installieren, die Entwicklungsbibliothek, die es einer Anwendung ermöglicht, Netzwerkpakete zu erkennen.
sudo apt-get installieren libpcap-dev
Jetzt machen wir ein Verzeichnis, laden Sie den Quellcode und kompilieren
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com /code/ mysqlsniffer.tgz
tarxvfz mysqlsniffer.tgz
gcc -O2 -lpcap-o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
An dieser Stelle haben wir eine glänzende neue ausführbare Datei namens mysqlsniffer in unserem Quellverzeichnis. Sie können es kopieren, wo Sie möchten( irgendwo im Pfad wäre nützlich)
Um mysqlsniffer auszuführen, müssen Sie die Netzwerkschnittstelle angeben, die MySQL überwacht. Für mich ist es eth0.
sudo
mysqlsniffer eth0
Viele Sachen fangen an zu fliegen. .. lassen Sie uns es ein wenig mehr herausfiltern, damit wir nur die Abfragen und nicht alle überflüssigen Daten bekommen können.
$ sudo /path/to/ mysqlsniffer -no-mysql-hdrs eth0 |grep COM_QUERY
192.168.73.1.2622 & gt;Server: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622 & gt;Server: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 & gt;Server: COM_QUERY: SET NAMEN utf8
192.168.73.1.1636 & gt;Server: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;Server: COM_QUERY: SHOW FULL COLUMNS VON `db2842_howto`.wp_users`
Ah, jetzt da sind wir. .. alle Arten von Abfrage-Informationen, ohne MySQL neu starten zu müssen.
Hier sind die vollständigen Optionen für den Befehl:
Verwendung: mysqlsniffer [OPTIONEN] INTERFACE
OPTIONEN:
-port N Achten Sie auf MySQL auf Portnummer N( Standard 3306)
-verbose Zusätzliche Paketinformationen anzeigen
-tcp-ctrl TCP anzeigenKontroll-Pakete( SYN, FIN, RST, ACK)
-net-hdrs Zeigt die wichtigsten IP- und TCP-Header-Werte
-no-mysql-hdrs Zeigt keine MySQL-Header( Paket-ID und Länge)
-status Zeige Zustand
-v40 MySQLServer ist Version 4.0
-dump Dump alle Pakete in hex
-help Drucken Sie diesen
Original Quellcode und weitere Informationen unter:
http: //hackmysql.com/ mysqlsniffer
Wenn Sie auf einem Entwicklungsserver laufen, wäre es einfacher, nur Abfrage zu aktivierenprotokollieren.