Loggear todas las consutas de MySQL en un archivo
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!.