Hoy en dia en Linux o Unix cuando una aplicacion requiere una base de datos del tipo MySQL o compatible, muchos optan por MariaDB.
Yo hace mucho no uso MySQL solo cuando un cliente necesitaba hacer una actualizacion desde una version 5.1 hasta la 8.x que fue una odisea pero se pudo hacer.
Ya hace mucho que vengo trabajando con MariaDB en Linux/Unix sin problemas y no he visto algun servicio que no quiera trabajar con MariaDB si no esta disponible MySQL.
Para aquellos que les aprenden mas viendo el contenido visual, les dejo el contenido en mi canal:
En este tutorial te indicare como instalarlo y asegurar la base de datos MariaDB en Debian 12 BookWorm pero los pasos aplican tambien para Ubuntu 22.04.x LTS su hijo.
Nuestro sistema esta listo, actualizado y hora correcta.
Paso 1; Ejecutamos el siguiente comando.
apt install mariadb-server
Copiar ComandoUna vez dando al orden inicia la instalacion de todas las dependencias que requiere MariaDB. Pero es rapido realmente y sencillo.
A el final podemos observar de la imagen anterior que se llevo a cabo la instalación sin errores que es lo mas importante, con esto podemos decir que ya esta instalada.
Una caracteristica de la famiila Debian y su hijo Ubuntu es que el servicio lo habilitan para que inicie cuando el OS arranca y ademas lo ejecuta o sea que en este momento esta ya operando.
¿Como podemos ver esto? con el siguiente comando del sistema.
systemctl status mariadb
¿Cual es la clave de fabrica del usuario ‘root’ de la base de datos?
De fabrica, no tiene clave asi que podemos ingresar a la consola sin clave, claro no responde peticiones aun fuera del sistema, todo es localhost.
Por ell es necesario que lo primero antes de cualquier manipulacion, asignar una clave compleja a el usuario de la base de datos.
Entramos a la consola y ejecutamos la instruccion:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘suclavecompleja’;
mysql
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘suclavecompleja’;
FLUSH PRIVILEGES;
quit
Intentamos entrar de nuevo y ya no sera posible sin clave.
Solo con la nueva contraseña podremos.
Listo, usuario root asegurado.
¿Donde se localizan los archivos de la base de datos?
/var/lib/mysql
¿Donde se localiza la configuracion del servicio?
/etc/mysql
¿Donde esta los logs de la base de datos?
En Debian/Ubuntu no hay un archivo donde ver esos logs que son vitales para restrear las fallas o notificaciones que el servicio requiere informarnos, por lo tanto ahi que agregar estar configuracion por que inicia con parametros muy basicos.
Por lo tanto, vamos a editar el archivo de configuracion y agregamos el parametro donde le indicaremos donde reportar las notificaciones generales del sistema.
[mysqld]
log_error=/var/log/mariadb/mariadb.err
Este parametro lo agregaremos al final del archivo:
nano /etc/mysql/my.cnf
NOTA: Ubuntu tiene un directorio en /var/log llamando mysql, lo voy a ignorar.
Ahora requerimos crear ese directorio y ese archivo en esa ruta.
cd /var/log
mkdir mariadb
touch mariadb/mariadb.err
Ahora requerimos cambiar los permisos de todo ese directorio a el usuario de la base de datos llamado ‘mysql‘.
chown -R mysql: mariadb/
Reiniciamos el servicio.
systemctl restart mariadb
systemctl status mariadb
Ahora, revisemos el contenido del log.
cat mariadb/mariadb.err
Listo, ya tenemos el log de la base de datos, cuando necesitemos revisar alguna notificacion, falla, error, etc ya tenemos un archivo para consultarlo lo cual es necesario en todos los servicios de nuestro servidor.
¿Cual es el puerto donde escucha las peticiones MariaDB?
3306 TCP igual que MySQL.
Si fuera necesario abrir trafico en tu firewall es TCP, no requiere el UDP.
¿Como se si mi servidor esta listo para recibir peticiones, como puedo ver el puerto?
Una manera es con el comando lsoft.
lsof -i -P -n | grep LISTEN | grep 3306
De fabrica MariaDB solo escucha peticiones a nivel interno(localhost o 127.0.0.1), no esta abierto para responder las conexiones en una red LAN.
¿Puedo habilitar mi servicio para que responda peticiones en mi LAN?
Si, para esto ocupamos indicarselo, asi que vamos a editar el archivo de configuracion de nuevo y agregamos estos parametros al final:
bind-address = 0.0.0.0
Luego, reinciamos el servicio y verificamos estado.
systemctl restart mariadb
systemctl status mariadb
Ahora revisamos nuestro archivo log para validar.
cat /var/log/mariadb/mariadb.err
Volvemos a revisar nuestro servidor si ya esta abierto para la LAN.
Vean la diferencia, ya no dice 127.0.0.1 si no ‘*’ o sea cualquier IP de nuestro sistema.
Ahora una cosa es que ya puedan responder, como no tengo ningun firewall que me este bloqueando, entonces deberian poder responder.
Hagamos una simple prueba con un equipo de la red usando el viejo telnet asi:
telnet ip-del-servidor 3306
No permitio acceso, revisemos los logs.
cat /var/log/mariadb/mariadb.err
2023-11-12 20:55:45 44 [Warning] Aborted connection 44 to db: ‘unconnected’ user: ‘unauthenticated’ host: ‘bos-cliente2.bos.local’ (This connection closed normally without authentication)
2023-11-12 20:56:31 45 [Warning] Aborted connection 45 to db: ‘unconnected’ user: ‘unauthenticated’ host: ‘bos-cliente2.bos.local’ (This connection closed normally without authentication)
Dice que cerro la conexion por que quiere ese cliente accear sin autenticacion, asi no es posible, la seguridad primero.
Resumen
Hasta aqui terminamos, hoy vimos como instalar, asegurar y llevar a cabo cambios en la configuracion de nuestra base datos MariaDB en la familia Debian, tiene muchos mas parametros pero esos conforme vayamos instalando servicios que lo requieran puede ser necesario agregar mas y sobre todo cambiar valores para obtener un mejor desempeño de MariaDB.
Tambien recordar los respaldos, pero de esos hablare en otro post.
Dudas, preguntas comentarios aqui abajo del post, saludos!!!