Urmăriți interogările MySQL cu mysqlsniffer pe Ubuntu
Aveți un server de bază de date de producție și nu puteți activa înregistrarea interogărilor ... așa cum vedeți interogările care sunt 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ă înșele pachetele de rețea.
sudo apt-get instala libpcap-dev
Acum, să facem un director, să preluă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ă o 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ările 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 excesive.
$ 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 majore IP și TCP header
-no-mysql-hdrs Nu afișați antetul MySQL (ID-ul pachetului și lungimea)
-stat Afișați statul
-v40 Serverul MySQL este versiunea 4.0
-dump Dump toate pachetele în hex
-ajutor Print this
Cod 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.