Rastrea las consultas de MySQL con mysqlsniffer en Ubuntu

Video: Rastrea las consultas de MySQL con mysqlsniffer en Ubuntu

Video: Rastrea las consultas de MySQL con mysqlsniffer en Ubuntu
Video: 🤑 Como Hacer Una BASE DE DATOS EN EXCEL 🚀 (Facil y RÁPIDO ) 2024, Marcha
Rastrea las consultas de MySQL con mysqlsniffer en Ubuntu
Rastrea las consultas de MySQL con mysqlsniffer en Ubuntu
Anonim

Tienes un servidor de base de datos de producción y no puedes habilitar el registro de consultas … ¿cómo ves las consultas que se ejecutan contra la base de datos?

La respuesta: use un rastreador de red modificado para analizar los paquetes MySQL y decodificarlos. Tendrás que hacer un poco de compilación, pero valdrá la pena. Tenga en cuenta que esto no suele funcionar para las conexiones locales, aunque puede intentarlo.

Primero, debe instalar libpcap-dev, que es la biblioteca de desarrollo que permite que una aplicación detecte paquetes de red.

sudo apt-get install libpcap-dev

Ahora vamos a hacer un directorio, descargar el código fuente y compilarlo

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

En este punto, tenemos un nuevo y brillante ejecutable llamado mysqlsniffer en nuestro directorio de origen. Puedes copiarlo donde quieras (en algún lugar del camino sería útil)

Para ejecutar mysqlsniffer, debe especificar la interfaz de red en la que MySQL está escuchando. Para mí, es eth0.

sudo /path/to/mysqlsniffer eth0

Un montón de cosas empiezan a volar por … vamos a filtrarlo un poco más para que podamos obtener las consultas y no todos los datos en exceso.

$ 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, ahora estamos … todo tipo de información de consulta, sin tener que reiniciar MySQL.

Aquí están las opciones completas para el comando:

Uso: mysqlsniffer [OPCIONES] INTERFAZ

OPCIONES: –Port N Escucha MySQL en el número de puerto N (predeterminado 3306) –Verbose Mostrar información adicional del paquete –Tcp-ctrl Mostrar paquetes de control TCP (SYN, FIN, RST, ACK) –Net-hdrs Muestra los principales valores de encabezado de IP y TCP –No-mysql-hdrs No mostrar el encabezado de MySQL (ID de paquete y longitud) –Estado Mostrar estado –V40 servidor MySQL es la versión 4.0 –Dump Vuelca todos los paquetes en hexadecimal. –Ayuda Imprimir esto

Código fuente original y más información en: https://hackmysql.com/mysqlsniffer

Si está ejecutando en un servidor de desarrollo, sería más fácil simplemente activar el registro de consultas.

Recomendado: