Imate poslužitelj za proizvodnu bazu podataka i ne možete omogućiti prijavljivanje upita ... pa kako vidite upite koji se izvršavaju protiv baze podataka?
Odgovor: upotrijebite izmijenjeni njuškanje mreže kako biste analizirali MySQL pakete i dekodirali ih. Morat ćete malo napisati, ali to će biti vrijedno toga. Imajte na umu da to obično ne funkcionira za lokalne veze, iako vam je dobrodošlo.
Prvo, morate instalirati libpcap-dev, što je razvojna knjižnica koja aplikaciji omogućuje njuškanje mrežnih paketa.
sudo apt-get install libpcap-dev
Sada napravimo direktorij, preuzmi izvorni kod i sastavimo ga
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
U ovom trenutku imamo sjajnu novu izvršnu datoteku pod nazivom mysqlsniffer u našem izvornom direktoriju. Možete ga kopirati gdje god želite (negdje na stazi bi bilo korisno)
Da biste pokrenuli mysqlsniffer, morate odrediti mrežno sučelje koje MySQL sluša. Za mene je eth0.
sudo / put / to / mysqlsniffer eth0
Puno stvari počinje letjeti ... neka je filtrira malo više pa možemo samo dobiti upite, a ne sve prekomjerne podatke.
$ sudo / put / do / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> poslužitelj: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> poslužitelj: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622> server: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> poslužitelj: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> poslužitelj: COM_QUERY: POKAŽAJTE PUNI KOLONI IZ 'db2842_howto'. 'Wp_users'
Ah, sad smo ... sve vrste upita, bez ponovnog pokretanja MySQL-a.
Ovdje su pune mogućnosti za naredbu:
Upotreba: mysqlsniffer [OPTIONS] INTERFACE
OPCIJE:
-port N Slušajte MySQL na portu broj N (zadani 3306)
-verbose Prikaži dodatne informacije o paketima
-tcp-ctrl Prikaži TCP kontrolne pakete (SYN, FIN, RST, ACK)
-net-hdrs Prikaz glavnih vrijednosti IP i TCP zaglavlja
-no-mysql-hdrs Ne prikazuj MySQL zaglavlje (paket ID i duljina)
-state Prikaži stanje
-v40 MySQL poslužitelj je verzija 4.0
-dump Dump sve pakete u hex
- pomoć Ispiši ovo
Izvorni izvorni kod i više informacija na:
http://hackmysql.com/mysqlsniffer
Ako radite na razvojnom poslužitelju, lakše je uključiti samo zapisivanje upita.