Máte produkční databázový server a nemůžete povolit protokolování dotazů ... takže jak vidíte, jak jsou dotazy prováděny proti databázi?

Odpověď: použijte modifikovaný síťový sniffer k rozboru paketů MySQL a jejich dekódování. Budete muset udělat trochu kompilace, ale bude to stát za to. Všimněte si, že to obvykle nebude fungovat pro místní připojení, ačkoli jste vítáni vyzkoušet.

Nejprve je třeba nainstalovat libpcap-dev, což je vývojová knihovna, která umožňuje aplikaci sniffovat síťové pakety.

sudo apt-get install libpcap-dev

Teď uděláme adresář, stáhněte zdrojový kód a zkompilujte 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 okamžiku máme v našem zdrojovém adresáři nový lesklý spustitelný soubor mysqlsniffer. Můžete jej kopírovat kdekoli (někde na cestě by bylo užitečné)

Chcete-li spustit službu mysqlsniffer, musíte specifikovat síťové rozhraní, které služba MySQL naslouchá. Pro mě je to eth0.

sudo /path/to/mysqlsniffer eth0

Zatížení věcí začíná létat ... necháme to trochu vyfiltrovat, abychom mohli dostat dotazy a ne všechna nadbytečná data.

$ 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, teď jsme ... všechny druhy dotazů, bez nutnosti restartovat MySQL.

Zde jsou plné možnosti příkazu:

Použití: mysqlsniffer [OPTIONS] INTERFACE

MOŽNOSTI:-Port N Poslech pro MySQL na portu číslo N (výchozí 3306)-Verbose Zobrazit další informace o paketu-Tcp-ctrl Zobrazit pakety TCP (SYN, FIN, RST, ACK)-Net-hdrs Zobrazit hlavní hodnoty IP a TCP hlavičky-No-mysql-hdrs Nezobrazovat hlavičku MySQL (ID a délka paketu)State Zobrazit stát-V40 MySQL server je verze 4.0-Dump Vyjměte všechny pakety v šestnáctce-Help Vytiskněte

Původní zdrojový kód a další informace na adrese:http://hackmysql.com/mysqlsniffer

Pokud běžíte na vývojovém serveru, bylo by snadnější zapnout protokolování dotazů.

Nejlepší Tipy:
Komentář: