Du har en databassserver för produktion, och du kan inte aktivera sökloggning ... så hur ser du frågorna som körs mot databasen?

Svaret: Använd ett modifierat nätverkssniffer för att parsa ut MySQL-paketen och avkoda dem. Du måste göra lite kompilering, men det kommer att vara värt det. Observera att det här vanligtvis inte fungerar för lokala anslutningar, men du är välkommen att försöka.

Först måste du installera libpcap-dev, vilket är utvecklingsbiblioteket som tillåter att en applikation sniffar nätverkspaket.

sudo apt-get install libpcap-dev

Låt oss nu göra en katalog, ladda ner källkoden och kompilera den

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

Vid denna tidpunkt har vi en glänsande ny körbar heter mysqlsniffer i vår källkatalog. Du kan kopiera det var du vill (någonstans i vägen skulle vara användbar)

För att köra mysqlsniffer måste du ange det nätverksgränssnitt som MySQL lyssnar på. För mig är det et0.

sudo /path/to/mysqlsniffer eth0

Massor av saker börjar flyga med ... låt oss filtrera ut lite mer så att vi bara kan få frågorna och inte alla överflödiga data.

$ sudo /path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=”192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`

Åh, nu är vi ... alla slags frågeinformation, utan att behöva starta om MySQL.

Här är de fullständiga alternativen för kommandot:

Användning: mysqlsniffer [OPTIONS] INTERFACE

ALTERNATIV:-Port N Lyssna på MySQL på portnummer N (standard 3306)-Verbose Visa extra paketinformation-Tcp-ctrl Visa TCP-kontrollpaket (SYN, FIN, RST, ACK)-Net-hdrs Visa stora IP- och TCP-huvudvärden-No-mysql-hdrs Visa inte MySQL-rubrik (paketets ID och längd)-Status Visa tillstånd-V40 MySQL-servern är version 4.0-Dump Dumpa alla paket i hex-Hjälp Skriv ut detta

Original källkod och mer information på:http://hackmysql.com/mysqlsniffer

Om du kör på en utvecklingsserver skulle det vara lättare att bara aktivera frågehantering.

Top Tips:
Kommentarer: