If-Koubou

Urmăriți interogările MySQL cu mysqlsniffer pe Ubuntu

Urmăriți interogările MySQL cu mysqlsniffer pe Ubuntu (Cum să)

Aveți un server de baze de date de producție și nu puteți activa înregistrarea interogărilor ... așa cum vedeți interogările executate împotriva bazei de date?

Răspunsul: utilizați un sniffer de rețea modificat pentru a analiza pachetele MySQL și pentru a le decoda. Va trebui să faci puțin compilare, dar merită. Rețineți că, de obicei, acest lucru nu va funcționa pentru conexiunile locale, deși sunteți bineveniți să încercați.

În primul rând, trebuie să instalați libpcap-dev, care este biblioteca de dezvoltare care permite unei aplicații să smulgă pachete de rețea.

sudo apt-get instala libpcap-dev

Acum, să facem un director, să descarcăm codul sursă și să îl compilam

mkdir mysqlsniffer

cd mysqlsniffer

wget hackmysql.com/code/mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz

gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c pachet_handlers.c misc.c

În acest moment, avem un executabil strălucitor numit mysqlsniffer în directorul nostru sursă. Puteți să-l copiați oriunde doriți (undeva în cale ar fi util)

Pentru a rula mysqlsniffer, trebuie să specificați interfața de rețea pe care o ascultă MySQL. Pentru mine e eth0.

sudo / path / to / mysqlsniffer eth0

Încărcăturile de lucruri încep să zboare cu ... să o filtram mai mult, astfel încât să putem obține doar interogările și nu toate datele în exces.

$ sudo / cale / către / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY

192.168.73.1.2622> server: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> server: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622> server: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> server: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> server: COM_QUERY: SHOW COLUMNELE COMPLETE DIN 'db2842_howto'. 'Wp_users'

Ah, acum suntem ... tot felul de informații de interogare, fără a fi nevoie să reporniți MySQL.

Iată opțiunile complete pentru comandă:

Utilizare: mysqlsniffer [OPTIONS] INTERFACE

OPȚIUNI:
-port N Ascultați pentru MySQL pe numărul portului N (implicit 3306)
-verbose Afișați informații suplimentare despre pachete
-tcp-ctrl Afișați pachetele de control TCP (SYN, FIN, RST, ACK)
-net-hdrs Afișați valorile importante ale antetului IP și TCP
-no-mysql-hdrs Nu afișați antetul MySQL (ID-ul și lungimea pachetului)
-Statul de stat arată
-v40 serverul MySQL este versiunea 4.0
-dump Dump toate pachetele în hex
- Ajutati-l sa imprimati aceasta

Codul sursă original și mai multe informații la:
http://hackmysql.com/mysqlsniffer

Dacă rulați pe un server de dezvoltare, ar fi mai ușor să activați logarea interogărilor.