28Jun

Spor MySQL Queries med mysqlsniffer på Ubuntu

click fraud protection

Du har en produktionsdatabaseserver, og du kan ikke aktivere forespørgselslogging. .. så hvordan ser du forespørgsler, der udføres mod databasen?

Svaret: Brug et modificeret netværkssniffer til at analysere MySQL-pakkerne og afkode dem. Du bliver nødt til at lave lidt kompilering, men det vil være det værd. Bemærk, at dette normalt ikke fungerer for lokale forbindelser, selvom du er velkommen til at prøve.

Først skal du installere libpcap-dev, som er udviklingsbiblioteket, der gør det muligt for en applikation at snuse netværkspakker.

sudo apt-get install libpcap-dev

Lad os nu lave en mappe, download kildekoden og kompilere 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

På dette tidspunkt har vi en skinnende ny eksekverbar navngivet mysqlsniffer i vores kilde bibliotek. Du kan kopiere det, hvor du vil( et sted i stien ville være nyttigt)

instagram viewer

Hvis du vil køre mysqlsniffer, skal du angive det netværksinterface, MySQL lytter til. For mig er det eth0.

sudo /path/to/ mysqlsniffer eth0

Masser af ting begynder at flyve ved. .. lad os filtrere det lidt mere, så vi kan bare få forespørgsler og ikke alle de overskydende 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 FULL COLUMNS FROM `db2842_howto`.`wp_users`

Åh, nu er vi. .. alle slags forespørgselsoplysninger uden at skulle genstarte MySQL.

Her er de fulde indstillinger for kommandoen:

Anvendelse: mysqlsniffer [OPTIONS] INTERFACE

OPTIONS:
-port N Lyt til MySQL på portnummer N( standard 3306)
-verbose Vis ekstra pakkeoplysninger
-tcp-ctrl Vis TCPkontrolpakker( SYN, FIN, RST, ACK)
-net-hdrs Vis større IP- og TCP-header-værdier
-no-mysql-hdrs Vis ikke MySQL-overskrift( pakke ID og længde)
-state Vis tilstand
-v40 MySQLserveren er version 4.0
-dump Dump alle pakker i hex
-help Udskriv denne

Original kildekode og flere oplysninger på:
http: //hackmysql.com/ mysqlsniffer

Hvis du kører på en udviklingsserver, ville det være lettere at bare tænde forespørgsellogning.