User Tools

Site Tools


registrar_todas_las_consultas_de_mysql

Registrar / Loguear todas las consultas a base de datos realizadas en un servidor MySQL

Registrar todas las consultas realizadas puede ser algo muy útil en determinadas ocasiones, también produce un incremento rápido del tamaño del fichero de log o bien de la tabla de log, dependiendo de donde queremos que se almacenen los registros. Por este motivo no se recomienda hacer en sistemas en producción.

Consultar el valor de las variables para concer el estado actual. (Valor por defecto OFF, desactivado).

 select * from information_schema.SESSION_VARIABLES where VARIABLE_NAME like 'log_output'
 or VARIABLE_NAME like 'general_log'
 or VARIABLE_NAME like 'general_log_file'
 
+------------------+----------------------------+
| VARIABLE_NAME    | VARIABLE_VALUE             |
+------------------+----------------------------+
| LOG_OUTPUT       | FILE                       |
| GENERAL_LOG      | OFF                        |
| GENERAL_LOG_FILE | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+

Registrar consultas MySQL en una tabla (MySQL >= 5.1.12). Nombre de la tabla: general_log / Base de datos: mysql.

Execute SET GLOBAL log_output = 'TABLE';
Execute SET GLOBAL general_log = 'ON';

Registrar consultas MySQL en un fichero.

SET GLOBAL log_output = "FILE"; which is set by default.
SET GLOBAL general_log_file = "/path/to/your/logfile.log"
SET GLOBAL general_log = 'ON';

Parar el registro de todas las consultas MySQL

mysql> SET GLOBAL general_log = 'OFF';

NOTA: Al reiniciar el servidor / servicio volverá la variable general_log a “OFF”

Lectura recomendada: http://dev.mysql.com/doc/refman/5.0/es/server-system-variables.html

Visualizar las consultas MySQL en tiempo real

Para poder ver las consultas MySQL que se están ejecutando en el servidor de base de datos al más puro estilo “top”, se puede hacer uso del comando mysqladmin + watch.

Mostrar las consultas de MySQL con la aplicación mysqladmin (instalada por defecto con MySQL).

watch mysqladmin  -uXXX -pXXX  processlist --verbose

Otras alternativas diseñadas para visualizar las consultas MySQL en tiempo real de forma parecida a como lo hace el mítico comando top.

NOTA: Con estas herramientas, se podrán ver solo consultas que tarden algunos segundos en completarse. Si lo que se quiere es poder tener todas las consultas registradas, lo recomendado es utilizar ficheros de log o tablas como se mostró anteriormente.

registrar_todas_las_consultas_de_mysql.txt · Last modified: 2020/12/25 22:57 by 127.0.0.1