Los registros de MariaDB (logs) ofrecen funciones completas que te ayudan a su­pe­r­vi­sar y optimizar tus in­s­ta­n­cias de base de datos. Te ex­pli­ca­mos los distintos tipos de logs y cómo co­n­fi­gu­rar­los y ac­ti­var­los.

¿Qué tipos de registros de MariaDB (logs) existen?

MariaDB ofrece cuatro tipos pri­n­ci­pa­les de registros que registran distintos aspectos del fu­n­cio­na­mie­n­to de la base de datos:

Error Log (registro de errores)

El registro de errores documenta eventos críticos, como el arranque y apagado del servidor, fallos del sistema y otros errores graves. Está activado por defecto y resulta útil para dia­g­no­s­ti­car problemas del servidor.

General Query Log (registro general de consultas)

Este registro recoge cada conexión al servidor y todos los comandos SQL eje­cu­ta­dos. Por ello, es útil en el análisis de errores y la su­pe­r­vi­sión de la actividad de los usuarios.

Binary Log (registro binario)

El registro binario registra todos los cambios en la base de datos, in­clu­ye­n­do ma­ni­pu­la­cio­nes de datos y mo­di­fi­ca­cio­nes es­tru­c­tu­ra­les. Es fu­n­da­me­n­tal para la re­pli­ca­ción y para realizar re­s­tau­ra­cio­nes a un momento es­pe­cí­fi­co (Point in Time Recovery).

Slow Query Log (registro de consultas lentas)

Este registro recoge las consultas SQL que superan un tiempo de ejecución es­ta­ble­ci­do. Es muy útil para detectar y optimizar los cuellos de botella en el re­n­di­mie­n­to.

Co­n­fi­gu­rar y usar los registros de MariaDB paso a paso

A co­n­ti­nua­ción, te mostramos cómo activar, co­n­fi­gu­rar y analizar los cuatro archivos de registro pri­n­ci­pa­les de MariaDB. Abo­r­da­re­mos el registro de errores, el registro general de consultas, el registro binario, el registro de consultas lentas y la ubicación de los registros de MariaDB.

Re­qui­si­tos

  • Un servidor con una versión actual de Ubuntu u otra di­s­tri­bu­ción Linux
  • Una cuenta de usuario con permisos de sudo
  • No tener instalado MySQL en paralelo, ya que MySQL y MariaDB pueden in­te­r­fe­rir en archivos de co­n­fi­gu­ra­ción y puertos
  • Co­no­ci­mie­n­tos básicos de SQL

Paso 1: mostrar y co­n­fi­gu­rar el registro de errores (Error Log)

Primero, debes ase­gu­rar­te de que MariaDB esté instalado. Para ello, ejecuta el siguiente comando:

sudo apt update
sudo apt install mariadb-server
bash

Este comando actualiza primero la lista de paquetes de tu sistema y luego instala el servidor MariaDB.

Para co­ne­c­tar­te a la base de datos MariaDB, ejecuta el siguiente comando:

sudo mariadb
bash

Con este comando abres la consola SQL in­ter­ac­ti­va como ad­mi­ni­s­tra­dor.

El siguiente paso es comprobar dónde escribe los registros MariaDB, como los mensajes de error. Para ello, usa esta in­s­tru­c­ción SQL:

SHOW VARIABLES LIKE '%log_error%';
sql

Si el valor de log_error está vacío, los mensajes de error se escriben por defecto en el registro central del sistema (syslog).

Para consultar este registro, utiliza el siguiente comando:

journalctl -u mariadb.service
bash

Con este comando obtienes una lista cro­no­ló­gi­ca de los mensajes del sistema generados por el servicio MariaDB. Esto es útil para in­ve­s­ti­gar errores de inicio u otros eventos críticos.

Si, en cambio, quieres usar un archivo de registro de errores propio, debes editar el archivo de co­n­fi­gu­ra­ción de MariaDB. Ábrelo con un editor de texto como nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Busca la sección [mysqld] y añade la siguiente línea, o de­s­co­mé­n­ta­la si ya existe:

log_error = /var/log/mariadb/error.log
txt

Ahora debes ase­gu­rar­te de que el di­re­c­to­rio indicado existe y tiene los permisos correctos. Para ello, ejecuta estos comandos:

sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
bash

Estos comandos crean el di­re­c­to­rio y lo asignan al usuario y grupo mysql, lo que permite que MariaDB escriba en él.

Después, reinicia el servicio de MariaDB para que los cambios en la co­n­fi­gu­ra­ción surtan efecto:

sudo systemctl restart mariadb
bash

Por último, puedes consultar el registro de errores con este comando:

sudo cat /var/log/mariadb/error.log
bash

En este archivo en­co­n­tra­rás in­fo­r­ma­ción sobre los momentos de arranque, ad­ve­r­te­n­cias o problemas con plugins.

Paso 2: activar el registro general de consultas (General Query Log)

Para comprobar el estado actual, abre la consola SQL y ejecuta el siguiente comando:

SHOW VARIABLES LIKE '%general%';
sql

A co­n­ti­nua­ción, podrás ver si el registro general está activo (general_log = ON) y dónde se guarda (general_log_file).

Para activar pe­r­ma­ne­n­te­me­n­te estos logs de MariaDB, vuelve a editar el archivo de co­n­fi­gu­ra­ción:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade las si­guie­n­tes líneas en la sección [mysqld]:

general_log = 1
general_log_file = /var/log/mariadb/general-query.log
ini

A co­n­ti­nua­ción, reinicia el servidor:

sudo systemctl restart mariadb
bash

Para ver las entradas re­gi­s­tra­das, usa este comando:

sudo cat /var/log/mariadb/general-query.log
bash

Allí en­co­n­tra­rás todas las consultas y co­ne­xio­nes, in­clu­ye­n­do la marca temporal. Esto ayuda a de­te­r­mi­nar cuándo se rea­li­za­ron las so­li­ci­tu­des.

Paso 3: activar el registro binario (Binary Log)

Para co­n­fi­gu­rar el registro binario, abre el mismo archivo de co­n­fi­gu­ra­ción que antes:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade los si­guie­n­tes pa­rá­me­tros en la sección [mysqld]:

log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txt

El parámetro server_id es im­po­r­ta­n­te para la re­pli­ca­ción, ya que cada servidor necesita un ide­n­ti­fi­ca­dor único. Con binlog_format = ROW se registran en los logs de MariaDB todos los cambios en la base de datos a nivel de filas.

Reinicia el servidor:

sudo systemctl restart mariadb
bash

Para comprobar si el registro binario está activo, ejecuta en la consola SQL:

SHOW BINARY LOGS;
sql

Ahí apa­re­ce­rán los archivos binarios activos con su nombre y tamaño.

Para leer el contenido de un archivo, usa este comando:

sudo mysqlbinlog /var/log/mariadb/binary.000001
bash

Este comando muestra todos los comandos de mo­di­fi­ca­ción en orden cro­no­ló­gi­co.

Paso 4: registrar consultas lentas (Slow Query Log)

Edita el archivo de co­n­fi­gu­ra­ción:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade lo siguiente:

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txt

El parámetro long_query_time = 10 significa que se re­gi­s­tra­rán todas las consultas que tarden más de diez segundos en eje­cu­tar­se.

Reinicia el servidor:

sudo systemctl restart mariadb
bash

Verifica si el registro está activo:

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Ejecuta una consulta de prueba que sea in­te­n­cio­na­da­me­n­te lenta:

SELECT SLEEP(12);
sql

Esta in­s­tru­c­ción obliga al servidor a esperar doce segundos. Por ello, debería aparecer en el registro de consultas lentas.

Fi­na­l­me­n­te, puedes consultar el log con:

sudo cat /var/log/mariadb/slow-query.log
bash

El log mostrará la marca temporal, el tiempo de la consulta y la in­s­tru­c­ción SQL afectada.

Manage Databases
Managed Database von IONOS

Bases de datos a medida de tus ne­ce­si­da­des. Incluye soporte 24/7.

  • Ar­qui­te­c­tu­ra de primera
  • Soporte 24/7
  • Centros de datos ce­r­ti­fi­ca­dos
Ir al menú principal