Subscribe to How-To Geek Підписатись на How-To Geek

Important! This is an automatic machine translated page. If you can read english, you should Click Here to read the original English version of the article.

Track MySQL Queries with mysqlsniffer on Ubuntu Track MySQL запитів з mysqlsniffer на Ubuntu

You've got a production database server, and you can't enable query logging… so how do you see the queries being executed against the database? У вас є сервер виробничій базі даних, і ви не можете дозволити протоколювання запитів ... Отже, як ви бачите запити виконуються в базі даних?

The answer: use a modified network sniffer to parse out the MySQL packets and decode them. Відповідь: використовувати модифікований мережевий сніфер для аналізу з пакета MySQL та декодувати їх. You'll have to do a little compiling, but it'll be worth it. Ви повинні будете зробити компіляцію мало, але воно того варте. Note that this will not usually work for local connections, although you are welcome to try. Зауважимо, що це не робота, як правило, для локальних з'єднань, хоча ви можете спробувати.

First, you need to install libpcap-dev, which is the development library that allows an application to sniff network packets. По-перше, необхідно встановити Libpcap-Деві, яка є розробка бібліотеки, яка дозволяє додаткам нюхати мережевих пакетів.

sudo apt-get install libpcap-dev Суду Apt-Get установці Libpcap-DEV

Now let's make a directory, download the source code and compile it Тепер давайте зробимо каталог, скачати вихідні тексти та скомпілювати його

mkdir mysqlsniffer MKDIR mysqlsniffer

cd mysqlsniffer CD mysqlsniffer

wget hackmysql.com/code/mysqlsniffer.tgz Wget hackmysql.com / код / mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz mysqlsniffer.tgz TAR xvfz

gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c GCC-O2-lpcap-O mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c

At this point, we have a shiny new executable named mysqlsniffer in our source directory. На цьому етапі ми маємо блискучі новий виконуваний файл з ім'ям mysqlsniffer у вихідному каталозі. You can copy it wherever you like (somewhere in the path would be useful) Ви можете скопіювати його куди завгодно (десь в дорозі буде корисно)

To run mysqlsniffer, you need to specify the network interface that MySQL is listening on. Щоб запустити mysqlsniffer, вам потрібно вказати мережевий інтерфейс, який MySQL прослуховує. For me, it's eth0. Для мене це eth0.

sudo /path/to/mysqlsniffer eth0 Суду / путь / к / mysqlsniffer eth0

Loads of stuff starts flying by… let's filter it out a little more so we can just get the queries and not all the excess data. Вантажі, матеріал починає літати ... Давайте фільтра його трохи більше, щоб ми могли отримати тільки запити і не всі надлишкові дані.

$ sudo /path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY $ Sudo / путь / к / mysqlsniffer-ні-MySQL-ДРЧ eth0 | Grep COM_QUERY

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode 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 СЕСІЇ SQL_MODE = "
192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 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: SELECT @ @ SQL_MODE
192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users` 192.168.73.1.1636 Server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`. Wp_users ``

Ah, now there we are… all sorts of query information, without having to restart MySQL. Ах, тепер ми ... всякі запиту інформації, без того, щоб перезавантажити MySQL.

Here are the full options for the command: Ось повний варіант команди:

Usage: mysqlsniffer [OPTIONS] INTERFACE Застосування: mysqlsniffer [OPTIONS] ІНТЕРФЕЙС

OPTIONS: ОПЦІЇ:
–port N Listen for MySQL on port number N (default 3306) N-Port Слухайте MySQL на номер порту, N (за замовчуванням 3306)
–verbose Show extra packet information Показати-докладної додаткової інформації пакету
–tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK) TCP-порт TCP Ctrl Показати управління пакетами (SYN, FIN, RST, ACK)
–net-hdrs Show major IP and TCP header values -NET-ДРЧ Показати основний IP і TCP значень заголовків
–no-mysql-hdrs Do not show MySQL header (packet ID and length) -Ні-MySQL-ДРЧ Не показувати заголовки MySQL (ID пакету і довжини)
–state Show state Держава-держава Показати
–v40 MySQL server is version 4.0 V40 MySQL-сервера версії 4.0
–dump Dump all packets in hex -Дамп Dump всі пакети в шістнадцятковому
–help Print this -Допомога Роздрукувати

Original source code and more information at: Оригінальний вихідний код і додаткову інформацію за адресою:
http://hackmysql.com/mysqlsniffer http://hackmysql.com/mysqlsniffer

If you are running on a development server, it would be easier to just Якщо ви працюєте на сервері розробки, було б простіше просто turn on query logging включити протоколювання запитів . .

This article was originally written on 05/25/07 Tagged with: Ця стаття була спочатку написана на 05/25/07 тегами: Ubuntu Ubuntu

Daily Email Updates Email Щоденні оновлення

You can get our how-to articles in your inbox each day for free. Ви можете отримати наші довідкові статті у Вашу поштову скриньку щодня безкоштовно. Just enter your name and email below: Просто введіть ваші ім'я та адресу електронної пошти нижче:


Name: Ім'я:
Email: Електронна пошта:

Our Friends Наші друзі
Getting Started Приступаючи до роботи


About How-To Geek Про How-To Geek
What Is That Process? Що це за процес?
svchost.exe svchost.exe
jusched.exe jusched.exe
dwm.exe dwm.exe
ctfmon.exe Ctfmon.exe
wmpnetwk.exe wmpnetwk.exe
wmpnscfg.exe wmpnscfg.exe
rundll32.exe rundll32.exe
wfcrun32.exe wfcrun32.exe
Ipoint.exe Ipoint.exe
Itype.exe Itype.exe
Wfica32.exe Wfica32.exe
Mobsync.exe Mobsync.exe
conhost.exe conhost.exe
Dpupdchk.exe Dpupdchk.exe Adobe_Updater.exe Adobe_Updater.exe

Copyright © 2006-2009 HowToGeek.com. Copyright © 2006-2009 HowToGeek.com. All Rights Reserved. Всі права захищені.