Angela Sofíá Osorio
Tiempo de lectura 5 minutes
Fecha de publicación
Si estás configurando un servidor web o un entorno de desarrollo en Debian, la elección de tu sistema de gestión de bases de datos es fundamental. Durante años, la respuesta automática fue MySQL. Sin embargo, en el ecosistema actual de Linux, MariaDB ha tomado la delantera como la opción predilecta, especialmente en distribuciones basadas en Debian.
En este tutorial, exploraremos por qué MariaDB es la mejor alternativa, cómo realizar una instalación limpia en Debian, y cómo asegurar tu base de datos configurando los usuarios y permisos correctos.
MariaDB vs MySQL: ¿Por qué usar MariaDB en Debian?
MariaDB no es solo una alternativa a MySQL; es un fork directo creado por los desarrolladores originales de MySQL tras la adquisición de este último por parte de Oracle. Aunque ambos sistemas son altamente compatibles, existen diferencias clave que hacen de MariaDB la opción estándar en Debian:
Ventajas de MariaDB
- Filosofía Open Source: MariaDB se mantiene estrictamente bajo la licencia GPL. No existen módulos de código cerrado ni versiones empresariales con características exclusivas ocultas, lo que garantiza un desarrollo verdaderamente impulsado por la comunidad.
- Integración Nativa: Debian ha reemplazado MySQL con MariaDB como su base de datos predeterminada en los repositorios oficiales desde la versión Stretch (Debian 9). Esto asegura actualizaciones fluidas y máxima estabilidad en el sistema operativo.
- Rendimiento Superior: MariaDB incluye motores de almacenamiento optimizados como Aria (el reemplazo directo de MyISAM) y mejoras en el optimizador de consultas que resultan en ejecuciones más rápidas para cargas de trabajo complejas.
Desventajas
- Divergencia de Características: A medida que ambos proyectos evolucionan, la compatibilidad absoluta se está perdiendo. Funciones muy específicas e implementadas recientemente en MySQL (como ciertas funciones avanzadas de manejo de JSON) pueden funcionar de manera diferente en MariaDB.
Para la inmensa mayoría de aplicaciones web modernas, arquitecturas limpias y despliegues en servidores VPS, MariaDB ofrece un entorno más rápido, seguro y alineado con la filosofía de Linux.
Tutorial de Instalación de MariaDB en Debian
La instalación a través del gestor de paquetes APT es directa. Abre tu terminal y ejecuta los siguientes comandos con privilegios de administrador.
1. Actualizar el índice de paquetes
Siempre es una buena práctica asegurar que las referencias a los repositorios estén al día antes de instalar software nuevo:
sudo apt update
sudo apt upgradeBash2. Instalar el servidor MariaDB
Ejecuta el comando de instalación. El sistema de Debian se encargará de descargar el paquete y sus dependencias:
sudo apt install mariadb-serverBashUna vez finalizado, el servicio se iniciará automáticamente. Puedes verificar su estado con:
sudo systemctl status mariadb
BashAsegurando la Instalación: mariadb-secure-installation
Inmediatamente después de la instalación, MariaDB incluye configuraciones predeterminadas que son útiles para pruebas, pero inseguras para entornos de producción. Para solucionar esto, MariaDB incluye un script de seguridad.
Ejecuta el siguiente comando en tu terminal:
sudo mariadb-secure-installationBashEl asistente te hará una serie de preguntas. A continuación, desglosamos qué responder y por qué:
Enter current password for root (enter for none)
- Respuesta: Presiona Enter.
- Por qué: En una instalación fresca, el usuario root de la base de datos aún no tiene una contraseña asignada.
Switch to unix_socket authentication [Y/n]
- Respuesta: Escribe Y.
- Por qué: Esta es la práctica más moderna en Debian. Vincula las credenciales de tu sistema operativo con la base de datos. Significa que si tienes acceso
sudoen el servidor, tienes acceso root a MariaDB, eliminando la necesidad de almacenar contraseñas vulnerables en texto plano.
Change the root password? [Y/n]
- Respuesta: Escribe n.
- Por qué: Al habilitar
unix_socketen el paso anterior, la cuenta root ya está protegida. Establecer una contraseña tradicional puede causar conflictos con los scripts de mantenimiento automáticos de Debian.
Remove anonymous users? [Y/n]
- Respuesta: Escribe Y.
- Por qué: MariaDB incluye cuentas anónimas que permiten a cualquier persona iniciar sesión sin un usuario. Esto es un riesgo crítico de seguridad y debe eliminarse.
Disallow root login remotely? [Y/n]
- Respuesta: Escribe Y.
- Por qué: El usuario root solo debe poder acceder desde la máquina local (
localhost). Esto previene que atacantes externos intenten adivinar contraseñas mediante ataques de fuerza bruta por la red.
Remove test database and access to it? [Y/n]
- Respuesta: Escribe Y.
- Por qué: Elimina una base de datos de prueba predeterminada a la que cualquier usuario tiene acceso. Mantén tu entorno limpio.
Reload privilege tables now? [Y/n]
- Respuesta: Escribe Y.
- Por qué: Aplica inmediatamente todas las restricciones de seguridad que acabas de configurar.
Creación de un Nuevo Usuario (El Principio del Menor Privilegio)
El error más común de los desarrolladores principiantes es conectar sus aplicaciones web directamente utilizando el usuario root. Esto es un grave riesgo de seguridad. Si tu aplicación se ve comprometida, el atacante obtendrá control total sobre todas las bases de datos del servidor.
La regla de oro es crear un usuario dedicado para gestionar bases de datos, manteniendo al usuario root exclusivamente para la administración del sistema.
1. Ingresar a MariaDB
Utiliza tus privilegios de sistema para entrar a la consola de MariaDB:
sudo mariadbBash2. Crear el nuevo usuario y asignar permisos
Dentro del prompt de MariaDB, ejecuta los siguientes comandos en lenguaje SQL. Sustituye tu_usuario y contraseña_fuerte por tus propios datos:
CREATE USER 'tu_usuario'@'localhost' IDENTIFIED BY 'contraseña_fuerte';SQLA continuación, otorga a este usuario permisos administrativos completos sobre todas las bases de datos:
GRANT ALL PRIVILEGES ON *.* TO 'tu_usuario'@'localhost' WITH GRANT OPTION;SQLFinalmente, recarga las tablas de permisos para aplicar los cambios y sal de la consola:
FLUSH PRIVILEGES;
EXIT;SQLA partir de ahora, puedes iniciar sesión de forma segura y gestionar tus bases de datos utilizando tu nueva cuenta sin comprometer la seguridad de la cuenta administrativa principal, utilizando el comando mariadb -u tu_usuario -p.
Contents
