Skip to main content

Sledujte otázky MySQL s mysqlsnifferom na Ubuntu

Sledujte otázky MySQL s mysqlsnifferom na Ubuntu

Geoffrey Carr

Máte výrobný databázový server a nemôžete povoliť zapisovanie dotazov ... tak, ako vidíte dopyty, ktoré sa vykonávajú proti databáze?

Odpoveď: použite upravený 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, hoci ste ochotní vyskúšať.

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

sudo apt-get install libpcap-dev

Teraz urobme adresár, prevezme si zdrojový kód a zostavíme ho

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

V tomto momente 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ť program mysqlsniffer, musíte špecifikovať sieťové rozhranie, na ktoré program MySQL počúva. Pre mňa je to všetko.

sudo /path/to/mysqlsniffer eth0

Veľa vecí začne lietať ... poďme to trochu viac odfiltrovať, aby sme mohli dostať len otázky a nie všetky prebytočné dáta.

$ 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`

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

Tu sú plné možnosti príkazu:

Použitie: mysqlsniffer [OPTIONS] INTERFACE

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ť riadiace pakety TCP (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)Stav Zobrazenie stavu-V40 MySQL server je verzia 4.0-Dump Odbaliť všetky pakety v šestnástku-Help Vytlačiť

Pôvodný zdrojový kód a ďalšie informácie na adrese:http://hackmysql.com/mysqlsniffer

Ak používate vývojový server, bolo by jednoduchšie jednoducho zapnúť zaznamenávanie dotazov.

Link
Plus
Send
Send
Pin