Domovská » jak » Sledujte MySQL dotazy s mysqlsniffer na Ubuntu

    Sledujte MySQL dotazy s mysqlsniffer na Ubuntu

    Máte produkční databázový server a nemůžete povolit protokolování dotazů ... takže jak vidíte dotazy, které se provádějí 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.

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

    sudo apt-get nainstalovat libpcap-dev

    Nyní vytvoříme adresář, stáhněte zdrojový kód a zkompilujte jej

    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 zkopírovat kdekoli se vám líbí (někde v 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 / cesta / do / mysqlsniffer eth0

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

    $ sudo / cesta / do / 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: ZVEŘEJNĚTE plné sloupce z 'db2842_howto'. 'Wp_users'

    Ah, teď jsme ... všechny druhy informací, 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ší paketové informace
    -tcp-ctrl Zobrazit pakety TCP (SYN, FIN, RST, ACK)
    -net-hdrs Zobrazit hlavní hodnoty IP a TCP hlavičky
    -no-mysql-hdrs Nezobrazovat záhlaví MySQL (ID a délka paketu)
    -state Zobrazit stát
    -v40 MySQL server je verze 4.0
    -výpis všech balíků v šestnáctce
    -help Vytisknout

    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ů.