28Jun

Sledujte otázky MySQL s mysqlsnifferom na Ubuntu

Máte výrobný databázový server a nemôžete povoliť protokolovanie dotazov. .. takže ako vidíte, aké dopyty sa robia proti databáze?

Odpoveď: použite modifikovaný sieťový sniffer na analýzu paketov MySQL a ich dekódovanie. Budete musieť urobiť trochu kompilácie, ale to bude stáť za to. Upozorňujeme, že to zvyčajne nebude fungovať pri lokálnych pripojeniach, aj keď ste to vyskúšali.

Najprv musíte nainštalovať libpcap-dev, čo je vývojová knižnica, ktorá umožňuje aplikácii očistiť sieťové pakety.

sudo apt-get nainštalovať libpcap-dev

Teraz poďme vytvoriť adresár, stiahnuť zdrojový kód a zostaviť ho

mkdir mysqlsniffer

cd mysqlsniffer

wget hackmysql.com /code/ mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz

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

V tomto okamihu máme v našom zdrojovom adresári nový lesklý spustiteľný súbor mysqlsniffer. Môžete to skopírovať kdekoľvek sa vám páči( niekde v ceste by bolo užitočné)

Ak chcete spustiť mysqlsniffer, musíte špecifikovať sieťové rozhranie, ktoré MySQL počúva. Pre mňa je to všetko.

sudo /path/to/ mysqlsniffer eth0

Zaťaženie veci začína lietanie. .. dovoľte, aby sme to trochu viac odfiltrovali, aby sme mohli dostať len dotazy a nie všetky prebytočné dáta.

$ 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: Ukážte plné stĺpce z `db2842_howto`.`wp_users`

Ah, teraz sme tu. .. všetky druhy informácií, bez nutnosti reštartovať MySQL.

Použitie: mysqlsniffer [MOŽNOSTI] ROZHRANIE

MOŽNOSTI:
-port N Počúvajte pre MySQL na porte číslo N( predvolené 3306)
-verbose Zobraziť ďalšie informácie o paketoch
-tcp-ctrl Zobraziť TCPkontrolné pakety( SYN, FIN, RST, ACK)
-net-hdrs Zobraziť hlavné hodnoty hlavičky IP a TCP
-no-mysql-hdrs Nezobrazovať hlavičku MySQL( ID a dĺžka paketu)
-state Ukázať stav
-v40 MySQLserver je verzia 4.0
-dump Výpis všetkých paketov v hexade
-help Vytlačte tento zdrojový kód

a ďalšie informácie na:
http: //hackmysql.com/ mysqlsniffer

Ak používate vývojový server, je jednoduchšie zapnúť dotazprotokolovanie.