
2023 Autor: Peter John Melton | [email protected]. Última modificación: 2023-07-30 18:49
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:
Monitorear todas las consultas SQL en MySQL

El servidor SQL de Microsoft tiene una herramienta llamada Perfilador que puede usar para monitorear cada consulta SQL que llega a la base de datos. Esto es extremadamente útil tanto para los programadores como para los administradores de bases de datos para resolver problemas de las consultas exactas generadas por una aplicación.
¿Por qué los resultados de búsqueda de Google son más rápidos que las consultas locales en el disco duro?

La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad.
Rastrea, optimiza y aumenta el rendimiento y las ganancias de Google Adsense

Estos consejos te ayudarán a ganar más dinero con Google AdSense. ¡Rastree, optimice y aumente el rendimiento de sus unidades de AdSense!
El seguimiento ultrasónico de dispositivos cruzados rastrea los dispositivos IoT con señales de ultrasonido

Los seres humanos no pueden escuchar las señales de seguimiento ultrasónico de dispositivos cruzados, pero se usan para rastrear los patrones de comportamiento de los usuarios y brindarles contenido específico.
Webcast público, por Microsoft, para responder a sus consultas sobre cómo convertirse en un MVP

¿Quieres probar y convertirte en un MVP de Microsoft? Consulte estos consejos, preguntas frecuentes y este webcast público de Microsoft en su Premio al Mejor Profesional Valioso.