28Jun

Volg MySQL-query's met mysql sniffer op Ubuntu

U hebt een productiedatabaseserver en u kunt query-logboeken niet inschakelen. .. dus hoe ziet u de query's die tegen de database worden uitgevoerd?

Het antwoord: gebruik een aangepaste netwerksniffer om de MySQL-pakketten te ontleden en te decoderen. Je zult een beetje moeten compileren, maar het is het waard. Merk op dat dit meestal niet zal werken voor lokale verbindingen, hoewel u van harte welkom bent om het te proberen.

Eerst moet u libpcap-dev installeren, wat de ontwikkelingsbibliotheek is waarmee een toepassing netwerkpakketten kan ruiken.

sudo apt-get install libpcap-dev

Laten we nu een map maken, de broncode downloaden en compileren

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

Op dit moment hebben we een glanzend nieuw uitvoerbaar bestand genaamd mysqlsniffer in onze brondirectory. Je kunt het kopiëren waar je maar wilt( ergens in het pad zou handig zijn)

Om mysqlsniffer uit te voeren, moet je de netwerkinterface specificeren waarop MySQL luistert. Voor mij is het eth0.

sudo /path/to/ mysqlsniffer eth0

Heel veel dingen vliegen voorbij. .. laten we het iets meer filteren, zodat we alleen de zoekopdrachten kunnen krijgen en niet alle overtollige gegevens.

$ 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 NAMES utf8
192.168.73.1.1636 & gt;server: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;server: COM_QUERY: TOON VOLLE KOLOMMEN VAN `db2842_howto`.`wp_users`

Ah, nu zijn we. .. allerlei soorten query-informatie, zonder dat MySQL opnieuw hoeft te worden opgestart.

Hier zijn de volledige opties voor de opdracht:

Gebruik: mysqlsniffer [OPTIONS] INTERFACE

OPTIES:
-port N Luister naar MySQL op poortnummer N( standaard 3306)
-verbose Toon extra pakketinformatie
-tcp-ctrl Toon TCPbesturingspakketten( SYN, FIN, RST, ACK)
-net-hdrs Toon belangrijkste IP- en TCP-headerwaarden
-no-mysql-hdrs Geen MySQL-header( pakket-ID en lengte)
-staat Showtoestand
-v40 MySQLserver is versie 4.0
-dump Alle pakketten dumpen in hex
-help Druk deze

originele broncode en meer informatie af op:
http: //hackmysql.com/ mysqlsniffer

Als u op een ontwikkelingsserver werkt, is het eenvoudiger om de query in te schakelenhoutkap.