28Jun
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.