Loggear todas las consutas de MySQL en un archivo

2020-05-14 MySQL

Hace algún tiempo publicamos un artículo para Hacer Debug a Locks en base de datos MySQL. Sin embargo, muchas veces necesitamos tener una traza completa de cuáles son las consultas ejecutadas paso a paso en el motor de base de datos independientemente la aplicación que esté conectada a él. Es por esto que el día de hoy veremos como volcar todo el registro de consultas ejecutada a un archivo en el sistema operativo el cuál podremos revisar después.

Lo primero que debes hacer es consultar actualmente si el log de consultas está activado y hacia donde está volcando la información. Para esto basta ejecutar el siguiente comando.

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
2 rows in set, 1 warning (0.35 sec)

Una vez hecho esto vemos que el estado es OFF, es decir, no se está loggeando nada en este momento. Para cambiar este comportamiento basta ejecutar el siguiente comando.

mysql> SET GLOBAL general_log = 'ON';

Y eso es todo, las próximas consultas ejecutadas al motor quedarán loggeadas en el archivo de la variable general_log_file. Si deseas cambiar el archivo en donde se están loggeando actualmente las consultas lo puedes hacer de la misma manera como configuramos la variable general_log. Hasta la próxima!.

Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.