28Jun

Sledite MySQL poizvedbam z mysqlsniffer na Ubuntu

Imate strežnik baze podatkov s proizvodnjo in ne morete omogočiti beleženja poizvedb. .. torej, kako vidite poizvedbe, ki se izvajajo proti bazi podatkov?

Odgovor: uporabite modificiran mrežni sniffer za razčlenjevanje paketov MySQL in njihovo dekodiranje. Boste morali narediti malo zbiranje, vendar bo vredno. Upoštevajte, da to običajno ne bo delovalo za lokalne povezave, čeprav ste dobrodošli, da poskusite.

Najprej morate namestiti libpcap-dev, ki je razvojna knjižnica, ki omogoča aplikaciji nihanje omrežnih paketov.

sudo apt-get namestite libpcap-dev

Zdaj pa naredimo imenik, prenesite izvorno kodo in jo sestavite

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

Na tej točki imamo v našem izvornem imeniku novo novo izvedljivo ime mysqlsniffer. Lahko ga kopirate kjerkoli želite( nekje na poti bi bilo koristno)

Če želite zagnati mysqlsniffer, morate določiti omrežni vmesnik, na katerem MySQL posluša. Zame je et0.

sudo /path/to/ mysqlsniffer eth0

Obremenitve stvari se začnejo leteti. .. ga še malo filtriramo, da bomo lahko dobili samo poizvedbe in ne vse presežne podatke.

$ sudo /path/to/ mysqlsniffer -no-mysql-hdrs eth0 |grep COM_QUERY

192.168.73.1.2622 & gt;strežnik: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622 & gt;strežnik: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 & gt;strežnik: COM_QUERY: SET NAMES utf8
192.168.73.1.1636 & gt;strežnik: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;strežnik: COM_QUERY: PRIKAZITE FULLSKE KOLUMIJE IZ `db2842_howto`.`wp_users`

Ah, zdaj smo. .. vse vrste informacij o poizvedbi, ne da bi morali znova zagnati MySQL.

Tukaj so polne možnosti za ukaz:

Uporaba: mysqlsniffer [OPTIONS] INTERFACE

OPCIJE:
-port N Poslušajte za MySQL na številki vrat N( privzeto 3306)
-verbose Prikaži dodatne informacije o paketu
-tcp-ctrl Pokaži TCPkontrolni paketi( SYN, FIN, RST, ACK)
-net-hdrs Prikaži glavne vrednosti IP in TCP glave
-no-mysql-hdrs Ne prikazujte glave MySQL( ID paketa in dolžine)
-stanje Prikaži stanje
-v40 MySQLstrežnik je različica 4.0
-dump Dump vse pakete v hex
-help Natisni ta

Izvorna izvorna koda in več informacij na:
http: //hackmysql.com/ mysqlsniffer

Če uporabljate razvojni strežnik, bi bilo lažje vklopiti samo poizvedbobeleženje.