Mi Blog
👉 Cómo activar el Log de MySQL y MariaDB

Cómo activar el Log de MySQL y MariaDB

 

Activar los logs en un Sistema Gestor de Bases de Datos (SGBD) es sumamente útil para conocer las consultas que se hacen en las bases de datos, posibles problemas de rendimiento o problemas generales relacionadas con el servidor. Tener los logs activados aportan mucha información útil para los SysAdmins, DevOps y DBAs.

Seguid leyendo y os enseñaré a activar los logs en MySQL y MariaBD...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ SON MYSQL y MARIADB?

MariaDB es un sistema de gestión de bases de datos que está muy relacionado con MySQL, ya que fue desarrollado por uno de los desarrolladores, Michael "Monty" Widenius. El objetivo de su desarrollo fue el de mantener el software de gestión de base de datos en un modelo de software libre.

El sistema de gestión de bases de datos MariaDB incorpora las distintas funciones características de MySQL añadiendo algunas mejoras, como la posibilidad de ejecutar consultas complejas y almacenarlas directamente en caché, la nueva gestión de conexiones a BD, la posibilidad de acceder a clúster de datos (interesante para el trabajo en la nube) o el soportar la utilización de jerarquías de graphs y estructuras más complejas.

En cuanto a seguridad y rendimiento, MariaDB incorpora mejoras, estando siempre en constante evolución gracias a la aportación de una gran comunidad que se encuentra tras de ella.

 

 

MariaDB es Software Libre

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux (preferiblemente Debian o similar)
  • Servidor MySQL/MariaDB instalado (versión 5.1.29+)

 

 

2.- ACTIVAR Y DESACTIVAR LOGS EN CALIENTE

Si nuestro SGBD tiene activada la opción de registro de actividad en los logs, podremos desactivarlo en caliente. Por el contrario, si nuestro SGBD tiene desactivada la opción de registro de actividad en los logs, podremos activarlo en caliente.

Para comprobar las valores actuales de las variables general_log y general_log_file, ejecutaremos la siguiente consulta dentro del SGBD:

MariaDB [testing]> SHOW variables WHERE Variable_name LIKE "%general_log%";
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | ON |
| general_log_file | /var/log/mysql/mysql.log |
+------------------+--------------------------+
2 rows in set (0.003 sec)

 

 

Si la generación de logs está activada, podremos desactivarla con el siguiente comando:

MariaDB [testing]> SET GLOBAL general_log=OFF;
Query OK, 0 rows affected (0.000 sec)

 

 

Para comprobar que los logs han sido desactivados ejecutaremos:

MariaDB [testing]> SHOW variables WHERE Variable_name LIKE "%general_log%";
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | OFF |
| general_log_file | /var/log/mysql/mysql.log |
+------------------+--------------------------+
2 rows in set (0.002 sec)

 

 

Si la generación de logs está desactivada, podremos activarla con el siguiente comando:

MariaDB [testing]> SET GLOBAL general_log=ON;
Query OK, 0 rows affected (0.003 sec)

 

 

Para comprobar que los logs han sido activados ejecutaremos:

MariaDB [testing]> SHOW variables WHERE Variable_name LIKE "%general_log%";
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | ON |
| general_log_file | /var/log/mysql/mysql.log |
+------------------+--------------------------+
2 rows in set (0.002 sec)

 

 

Si por alguna razón necesitamos cambiar el fichero de destino donde se escriben los logs, de forma temporal hasta que reiniciemos el servidor o restauremos los cambios, ejecutaremos lo siguiente:

MariaDB [testing]> SET GLOBAL general_log_file="/var/log/mysql/new-mysql.log";
Query OK, 0 rows affected (0.000 sec)

 

 

El nuevo fichero será: /var/log/mysql/new-mysql.log:

MariaDB [testing]> SHOW variables WHERE Variable_name LIKE "%general_log%";
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | ON |
| general_log_file | /var/log/mysql/new-mysql.log |
+------------------+------------------------------+
2 rows in set (0.002 sec)

 

 

Si hacemos un "ls" dentro del directorio de logs, veremos que se ha generado el nuevo fichero en el cual se estarán guardando las trazas del servidor de bases de datos:

raul@debian:~$ sudo ls -l /var/log/mysql/
total 8
-rw-rw---- 1 mysql adm 2943 feb 15 14:00 mysql.log
-rw-rw---- 1 mysql adm 467 feb 15 14:00 new-mysql.log

 

 

 

 

3.- ACTIVAR LOGS DE FORMA PERMANENTE

Si por el contrario, queremos hacer que los cambios sean permanentes (activar/desactivar los logs y cambiar el fichero de logs), lo que debemos hacer es editar el fichero principal de configuración del servidor de bases de datos. Generalmente, los ficheros de configuración están en /etc/mysql/ o /etc/mariadb/ (depende de la distribución de GNU/Linux). Para encontrar el fichero, podemos hacer una búsqueda de la línea "general_log_file" dentro del directorio de configuración para encontrar el fichero principal:

raul@debian:~$ grep -r -i "general_log_file" /etc/mysql/
/etc/mysql/mariadb.conf.d/50-server.cnf:#general_log_file = /var/log/mysql/mysql.log

 

 

En el ejemplo anterior podemos ver que el fichero principal es: /etc/mysql/mariadb.conf.d/50-server.cnf. Es posible que haya varias coincidencias, debemos ver cual es el fichero principal. Ahora será necesario editar el fichero y en función de nuestras necesidades, cambiar y descomentar las siguientes líneas:

general_log_file = /var/log/mysql/mysql.log
general_log = 1

 

 

La anterior configuración activa de forma permanente el registro de logs en el fichero /var/log/mysql/mysql.log.

Por último, reiniciaremos el servidor de bases de datos para aplicar los nuevos cambios:

raul@debian:~$ sudo service mariadb restart

 

  

También podemos reiniciarlo con:

raul@debian:~$ sudo /etc/init.d/mariadb restart

 

 

4.- VERIFICAR EL FUNCIONAMIENTO

Verificar si los cambios funcionan es muy sencillo. Por ejemplo, si hemos activado los logs, bastará con ejecutar una serie de comandos (cualquier consulta sirve) dentro del SGBD como por ejemplo los siguientes:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.5.12-MariaDB-0+deb11u1-log Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| testing |
+--------------------+
4 rows in set (0.003 sec)

MariaDB [(none)]> use testing;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [testing]> show tables;
+-------------------+
| Tables_in_testing |
+-------------------+
| alumnos |
+-------------------+
1 row in set (0.000 sec)

MariaDB [testing]> select * from alumnos;
+---------+------+
| nombre | edad |
+---------+------+
| nombre1 | 15 |
+---------+------+
1 row in set (0.006 sec)

 

 

Si ahora revisamos el fichero de log configurado, veremos que dichas consultas y comandos ejecutados se ven reflejados en el logs:

220215 13:52:21      6 Connect root@localhost on using Socket
6 Query select @@version_comment limit 1
220215 13:52:25 6 Query show databases
220215 13:52:29 6 Query SELECT DATABASE()
6 Init DB testing
6 Query show databases
6 Query show tables
6 Field List alumnos
220215 13:52:35 6 Query show tables
220215 13:52:42 6 Query select * from alumnos

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!