Skip to main content

Відслідковувати MySQL запити з mysqlsniffer на Ubuntu

Відслідковувати MySQL запити з mysqlsniffer на Ubuntu

Geoffrey Carr

У вас є сервер виробничої бази даних, і ви не можете активувати журнал запитів ... так як ви бачите що виконуються запити проти бази даних?

Відповідь: використовуйте модифікований мережевий сніффер, щоб розібрати пакети MySQL і розшифрувати їх. Вам доведеться зробити невелику компіляцію, але це буде варто. Зауважте, що це зазвичай не працює для локальних підключень, хоча ви можете спробувати.

По-перше, вам потрібно встановити libpcap-dev, яка є бібліотекою розробки, яка дозволяє додатку нюхнути мережеві пакети.

sudo apt-get install libpcap-dev

Тепер давайте зробимо каталог, завантажте вихідний код та скомпілюємо його

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

На цьому етапі ми маємо блискучий новий виконуваний файл, що називається mysqlsniffer у нашому вихідному каталозі. Ви можете скопіювати його, де завгодно (десь на цьому шляху буде корисним)

Щоб запустити mysqlsniffer, потрібно вказати мережевий інтерфейс, який MySQL слухає. Для мене це eth0.

sudo /path/to/mysqlsniffer eth0

Навантаження речовини починають літати ... давайте фільтруємо його трохи більше, щоб ми могли просто отримати запити, а не всі надлишки даних.

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

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=”192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`

Ага, тепер там ми ... всілякі запити інформації, без перезавантаження MySQL.

Ось повні варіанти команди:

Використання: mysqlsniffer [ОПЦІЇ] ІНТЕРФЕЙС

ВАРІАНТИ:-Port N Слухати для MySQL на номері N (за замовчуванням 3306)-Вербез Показати додаткову інформацію про пакет-Tcp-ctrl Показати пакети керування TCP (SYN, FIN, RST, ACK)-Net-hdrs Показати основні значення заголовків IP та TCP-No-mysql-hdrs Не показувати заголовок MySQL (ідентифікатор пакета та довжина)- стан стан шоу-V40 MySQL-сервер версії 4.0-Dump Звантажте всі пакети в шістнадцятці-Допомога роздрукувати це

Оригінал вихідного коду та додаткова інформація на сторінці:http://hackmysql.com/mysqlsniffer

Якщо ви працюєте на сервері розробників, було б простіше просто включити реєстрацію запитів.

Link
Plus
Send
Send
Pin