En la primera entrada sobre el control del registro de consultas de MySQL describía las variables que controlan la configuración del mismo.Ahora voy a explicar como consultarlas y modificarlas para configurar el registro de consultas según queramos.
Una vez conectado a través de la herramienta de línea de comandos a un servidor MySQL se puede ver cual es la configuración actual del registro de consultas a través de la siguiente consulta:
mysql> select @@general_log,@@general_log_file,@@Log_output; +---------------+--------------------+--------------+ | @@general_log | @@general_log_file | @@Log_output | +---------------+--------------------+--------------+ | 0 | /tmp/mysql.log | FILE | +---------------+--------------------+--------------+ 1 row in set (0.00 sec)En este caso:
- El registro general está desactivado.
- El fichero de registro es /tmp/mysql.log.
- La salida de los registros es un fichero FILE.
Si se quiere activar el log general, en una configuración com la anterior, bastaría con introducir la orden:
mysql> set global general_log=1; Query OK, 0 rows affected (0.00 sec)
Se puede configurar el registro de consultas para que almacene la información en una tabla de la base de datos. Esta tabla es fija , se llama general_log y está en la base de datos mysql. La estructura de la misma puede consultarse con la siguiente orden:
mysql> desc mysql.general_log;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
--------------+------------------+------+-----+-------------------+-----------------------------+
| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| user_host | mediumtext | NO | | NULL | |
| thread_id | int(11) | NO | | NULL | |
| server_id | int(10) unsigned | NO | | NULL | |
| command_type | varchar(64) | NO | | NULL | |
| argument | mediumtext | NO | | NULL | |
+--------------+------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)
mysql> set global general_log=0; Query OK, 0 rows affected (0.00 sec) mysql> set global log_output='TABLE'; Query OK, 0 rows affected (0.00 sec) mysql> set global general_log=1; Query OK, 0 rows affected (0.00 sec)Ahora con la siguiente orden se puede ver los resultados almacenados en dicha tabla de registros:
mysql> select * from mysql.general_log; +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------------------------------------------------------------------------------------------+ | event_time | user_host | thread_id | server_id | command_type | argument | +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------------------------------------------------------------------------------------------+ | 2014-04-05 00:43:14 | root[root] @ [127.0.0.1] | 109942 | 0 | Query | select @@version | | 2014-04-05 00:43:16 | root[root] @ [127.0.0.1] | 109942 | 0 | Query | set global general_log=0 +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------------------------------------------------------------------------------------------+
Todas estas operaciones suponen que la versión del servidor MySQL que se está usando es al menos la 5.1.12
No hay comentarios:
Publicar un comentario