28Jun
Du har en produksjonsdatabasetjener, og du kan ikke aktivere spørringslogging. .. så hvordan ser du spørringene som blir utført mot databasen?
Svaret: Bruk et modifisert nettverkssniffer for å analysere MySQL-pakker og dekode dem. Du må gjøre litt kompilering, men det vil være verdt det. Vær oppmerksom på at dette vanligvis ikke fungerer for lokale tilkoblinger, selv om du er velkommen til å prøve.
Først må du installere libpcap-dev, som er utviklingsbiblioteket som lar et program snuse nettverkspakker.
sudo apt-install install libpcap-dev
La oss nå lage en katalog, laste ned kildekoden og kompilere den
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com /code/ mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2-lpcap-og mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
På dette tidspunktet har vi en skinnende ny kjørbarhet kalt mysqlsniffer i vår kildekatalog. Du kan kopiere det uansett hvor som helst( et sted i banen ville være nyttig)
For å kjøre mysqlsniffer må du angi nettverksgrensesnittet som MySQL lytter på.For meg er det eth0.
sudo /path/to/ mysqlsniffer eth0
Massevis av ting begynner å flyr etter. .. la oss filtrere det litt ut, så vi kan bare få spørsmålene og ikke alle overskytende data.
$ 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: Vis fulle kolonner fra `db2842_howto`.`wp_users`
Åh, nå er vi. .. alle slags spørringsinformasjon, uten å måtte starte MySQL på nytt.
Her er de fulle alternativene for kommandoen:
Bruk: mysqlsniffer [OPTIONS] INTERFACE
VALG:
-port N Lytt til MySQL på portnummer N( standard 3306)
-verbose Vis ekstra pakkeinformasjon
-tcp-ctrl Vis TCPkontrollpakker( SYN, FIN, RST, ACK)
-net-hdrs Vis store IP- og TCP-headerverdier
-no-mysql-hdrs Ikke vis MySQL-overskrift( pakke ID og lengde)
-state Vis tilstand
-v40 MySQLserveren er versjon 4.0
-dump Dump alle pakker i heks
-help Skriv ut denne
Original kildekoden og mer informasjon på:
http: //hackmysql.com/ mysqlsniffer
Hvis du kjører på en utviklingsserver, ville det være lettere å bare slå på spørringenlogging.