28Jun
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.