Cómo hacer que MySQL registre sus consultas en el log general

Si has estado trabajando con bases de datos MySQL en entornos como XAMPP, es probable que hayas encontrado situaciones donde necesitas registrar todas las consultas para depurar problemas o analizar el rendimiento. Sin embargo, a veces parece que el servidor simplemente ignora tus configuraciones.

A continuación, analizaremos cómo abordar este problema paso a paso, desde la configuración inicial hasta la verificación en vivo.

La configuración inicial

Archivo de configuración de MySQL mostrando la ruta de log general
Configuración inicial del archivo my.cnf donde se intenta activar el registro general de consultas.

Lo primero es revisar qué has puesto en tu archivo de configuración. Si tienes activado el registro general, verás líneas como esta dentro de la sección [mysqld]:

general_log=on
general_log_file=C:/var/log/mysqld/general.log

A simple vista, parece que todo está bien. El servidor debería estar escribiendo las consultas en el archivo indicado.

Paso 1: Verificar la estructura de carpetas

Antes de asumir que hay un error en el software, es fundamental comprobar si el sistema operativo reconoce la ruta. Tu archivo de log debe estar en C:varlogmysqldgeneral.log. A menudo, los servidores no crean automáticamente toda la estructura de directorios que falta.

Comprueba que exista la carpeta C:varlogmysqld. Si no existe, créala manualmente. Además, asegúrate de que la cuenta que ejecuta MySQL tenga los permisos de escritura necesarios para poder guardar el archivo sin problemas.

Paso 2: Inspeccionar las variables globales

Si la carpeta está bien, ¿por qué no aparece nada? Para saberlo con certeza, debes interactuar directamente con el servidor. Desde phpMyAdmin o una consola de MariaDB, ejecuta estas tres consultas para ver lo que realmente está pasando:

  • SHOW GLOBAL VARIABLES LIKE 'general_log';
  • SHOW GLOBAL VARIABLES LIKE 'general_log_file';
  • SHOW GLOBAL VARIABLES LIKE 'log_output';

Espera, revisemos los resultados. Deberías obtener algo parecido a esto:

VariableValor esperado
general_logON
general_log_fileC:varlogmysqldgeneral.log
log_outputFILE o FILE,TABLE

Si la variable log_output aparece configurada como NONE, eso explicaría por qué no se están registrando las consultas, incluso si tienes el log activado.

Paso 3: Prueba de activación manual

Ahora que tenemos una idea clara del estado actual, probemos a activar el registro manualmente. Esto es útil porque te permite comprobar la funcionalidad sin tener que reiniciar XAMPP ni modificar la configuración permanente todavía.

Diagrama técnico mostrando la conexión entre phpMyAdmin, las consultas SQL y los archivos de log
Flujo de depuración: ejecutar consultas SQL para inspeccionar variables globales y probar activación manual del registro.

Ejecuta los siguientes comandos en tu consola o phpMyAdmin:

SET GLOBAL general_log = 'OFF';
SET GLOBAL general_log_file = 'C:/Web/Xampp/mysql/data/general.log';
SET GLOBAL log_output = 'FILE';
SET GLOBAL general_log = 'ON';

Ahora, busca el archivo en C:WebXamppmysqldatageneral.log. Si aparece y contiene la consulta que acabas de ejecutar, por ejemplo SELECT NOW();, ya has identificado el problema. Era una cuestión de ruta o permisos.

Si funciona así, puedes establecer esta configuración permanente dentro de tu archivo [mysqld]:

general_log=ON
general_log_file="C:/Web/Xampp/mysql/data/general.log"
log_output=FILE

Sigue este proceso de verificación para asegurar que tus registros funcionen correctamente.