Ön rendelkezik termelési adatbázis-kiszolgálóval, és nem engedélyezheti a lekérdezés naplózását … így hogyan láthatja, hogy a lekérdezések végrehajtása az adatbázisban történik?
A válasz: használj egy módosított hálózati szkennert a MySQL csomagok kimutatására és dekódolására. Csinálni fogsz egy kicsit, de megéri. Ne feledje, hogy ez általában nem működik a helyi kapcsolatokon, bár szívesen próbálkozhat.
Először telepítenie kell a libpcap-dev-ot, amely a fejlesztői könyvtár, amely lehetővé teszi egy alkalmazás számára, hogy szippantja a hálózati csomagokat.
sudo apt-get install libpcap-dev
Most készítsünk egy könyvtárat, töltsük le a forráskódot és fordítsuk le
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
Ezen a ponton van egy fényes új végrehajtható nevű mysqlsniffer a forrás könyvtárunkban. Lehetőséged van arra, hogy bárhová is másolható (valahol az út hasznos lehet)
A mysqlsniffer futtatásához meg kell adnia azt a hálózati felületet, amelyet a MySQL hallgat. Számomra ez eth0.
sudo /path/to/mysqlsniffer eth0
Rengeteg dolog kezd el repülni … kicsit kiszűrjük egy kicsit, így csak a lekérdezéseket és nem az összes felesleges adatot kapjuk.
$ sudo /path/to/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: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`
Ah, most itt vagyunk … mindenféle lekérdezési információ, anélkül, hogy újraindítanunk kellett a MySQL-t.
A parancs teljes választékai:
Használat: mysqlsniffer [OPTIONS] INTERFACE
OPCIÓK: -Port N Hallgassa a MySQL-t az N portszámon (alapértelmezett 3306) -Verbose Több csomag információ megjelenítése -Tcp-ctrl Mutassa a TCP vezérlő csomagokat (SYN, FIN, RST, ACK) -Net-hdrs A legfontosabb IP és TCP fejléc értékek megjelenítése -No-mysql-hdrs Ne mutasd a MySQL fejlécet (csomagazonosító és hosszúság) Állomás állapota -V40 MySQL szerver a 4.0 verzió -Dump Dump minden csomagot hex -Help Nyomtassa ki ezt
Eredeti forráskód és további információk: https://hackmysql.com/mysqlsniffer
Ha fejlesztői kiszolgálón fut, egyszerűbb lenne bekapcsolni a lekérdezés naplózását.