28Jun
Masz serwer produkcyjnej bazy danych i nie możesz włączyć rejestrowania zapytań. .. tak jak widzisz kwerendy wykonywane względem bazy danych?
Odpowiedź: użyj zmodyfikowanego sniffera sieciowego do przeanalizowania pakietów MySQL i ich odkodowania. Będziesz musiał trochę skompilować, ale warto. Zauważ, że nie będzie to zazwyczaj działać dla połączeń lokalnych, chociaż możesz spróbować.
Najpierw musisz zainstalować libpcap-dev, która jest biblioteką programistyczną, która pozwala aplikacji na węszenie pakietów sieciowych.
sudo apt-get install libpcap-dev
Teraz zróbmy katalog, pobierz kod źródłowy i skompilujmy go
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
W tym momencie mamy nowy, błyszczący plik wykonywalny o nazwie mysqlsniffer w naszym katalogu źródłowym. Możesz go skopiować w dowolne miejsce( gdzieś na ścieżce byłoby użyteczne)
Aby uruchomić mysqlsniffer, musisz określić interfejs sieciowy, na którym nasłuchuje MySQL.Dla mnie jest to eth0.
sudo /path/to/ mysqlsniffer eth0
Mnóstwo rzeczy zaczyna latać po. .. odfiltrujmy je trochę bardziej, abyśmy mogli uzyskać tylko zapytania, a nie wszystkie nadmiarowe dane.
$ sudo /path/to/ mysqlsniffer -no-mysql-hdrs eth0 |grep COM_QUERY
192.168.73.1.2622 & gt;serwer: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622 & gt;serwer: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 & gt;serwer: COM_QUERY: SET NAMES utf8
192.168.73.1.1636 & gt;serwer: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;server: COM_QUERY: POKAŻ PEŁNE KOLUMNY Z `db2842_howto``wp_users`
Ah, teraz mamy. .. różnego rodzaju informacje o zapytaniach, bez konieczności restartowania MySQL.
Oto pełne opcje polecenia:
Zastosowanie: mysqlsniffer [OPCJE] INTERFEJS
OPCJE:
-port N Słuchaj MySQL na porcie numer N( domyślnie 3306)
-verbose Pokaż dodatkowe informacje o pakiecie
-tcp-ctrl Pokaż TCPpakiety kontrolne( SYN, FIN, RST, ACK)
-net-hdrs Pokaż główne wartości nagłówków IP i TCP
-no-mysql-hdrs Nie pokazuj nagłówka MySQL( identyfikator pakietu i długość)
-state Wyświetl stan
-v40 MySQLserwer jest wersją 4.0
-dump Zrzuć wszystkie pakiety w formacie
w formacie szesnastkowym -help Wydrukuj ten
Oryginalny kod źródłowy i więcej informacji na:
http: //hackmysql.com/ mysqlsniffer
Jeśli korzystasz z serwera programistycznego, łatwiej byłoby po prostu włączyć zapytaniewycięcie lasu.