- 1 Forma más rápida de instalar MariaDB en Ubuntu (compatible con 20.04 / 22.04 / 24.04)
- 1.1 ① Actualizar la información de paquetes
- 1.2 ② Instalar MariaDB
- 1.3 ③ Verificar que MariaDB está en ejecución
- 1.4 ④ Habilitar el inicio automático (generalmente no es necesario, pero se recomienda confirmar)
- 1.5 ⑤ Conectarse a MariaDB y verificar su funcionamiento
- 1.6 Inicialización de seguridad obligatoria después de la instalación
- 1.7 Versión de MariaDB instalada según la versión de Ubuntu
- 1.8 Verificaciones rápidas si la instalación falla o el servicio no se inicia
- 2 Elegir la versión adecuada de MariaDB para tu versión de Ubuntu
- 3 Si necesitas la versión más reciente (agregar el repositorio oficial de MariaDB)
- 4 Cómo comprobar la versión de MariaDB instalada actualmente
- 5 Guía completa para la configuración inicial de seguridad de MariaDB (mysql_secure_installation)
- 6 Por qué no puedes iniciar sesión como root (Error de acceso denegado)
- 7 Cómo cambiar root a autenticación por contraseña (solo si es necesario)
- 8 Cómo comprobar el método de autenticación actual
- 9 Errores comunes y soluciones
- 10 Configurar la codificación de caracteres a utf8mb4 (evitar texto corrupto)
- 11 Especificar utf8mb4 al crear una base de datos (recomendado)
- 12 Crear un usuario de aplicación y otorgar permisos
- 13 Crear un usuario de acceso remoto (solo si es necesario)
- 14 Cómo comprobar usuarios y privilegios actuales
- 15 Errores comunes de permisos y soluciones
- 16 Cómo permitir conexiones remotas en MariaDB (solución cuando falla el acceso externo)
- 17 Lista de verificación si no puede conectarse externamente
- 18 Notas importantes de seguridad
- 19 Solución de problemas cuando MariaDB no arranca (error de fallo)
- 20 Resumen de causas del error “Acceso denegado”
- 21 Mejoras básicas de rendimiento (para principiantes)
- 22 Frequently Asked Questions (FAQ)
- 23 Conclusion: Using MariaDB Safely on Ubuntu
Forma más rápida de instalar MariaDB en Ubuntu (compatible con 20.04 / 22.04 / 24.04)
Si deseas comenzar a usar MariaDB en Ubuntu de inmediato, simplemente sigue los pasos a continuación para completar la instalación y la verificación del arranque. A menos que tengas una razón específica, instalar desde el repositorio predeterminado de Ubuntu es la opción más segura y estable.
① Actualizar la información de paquetes
sudo apt update
sudo apt upgrade -y
② Instalar MariaDB
sudo apt install -y mariadb-server mariadb-client
No se requiere ninguna configuración especial durante la instalación. Al finalizar, el servicio de MariaDB se iniciará automáticamente.
③ Verificar que MariaDB está en ejecución
sudo systemctl status mariadb
Si se muestra active (running), MariaDB está funcionando correctamente.
④ Habilitar el inicio automático (generalmente no es necesario, pero se recomienda confirmar)
sudo systemctl enable mariadb
⑤ Conectarse a MariaDB y verificar su funcionamiento
sudo mysql
Si ves el siguiente prompt, la instalación fue exitosa:
MariaDB [(none)]>
Para salir, escribe exit;.
Inicialización de seguridad obligatoria después de la instalación
Inmediatamente después de la instalación, MariaDB solo tiene configuraciones de seguridad mínimas aplicadas. Asegúrate de ejecutar el siguiente comando:
sudo mysql_secure_installation
Generalmente, se recomiendan las siguientes respuestas:
- Eliminar usuarios anónimos → Y
- No permitir el acceso remoto del usuario root → Y
- Eliminar la base de datos de prueba → Y
- Recargar las tablas de privilegios → Y
Con esto se completa la configuración de un entorno seguro de MariaDB en Ubuntu.
Versión de MariaDB instalada según la versión de Ubuntu
- Ubuntu 20.04 → serie MariaDB 10.3
- Ubuntu 22.04 → serie MariaDB 10.6
- Ubuntu 24.04 → serie MariaDB 10.11 (LTS)
Para la mayoría de los usuarios, la versión predeterminada de Ubuntu es suficiente. Solo considera el repositorio oficial si necesitas las últimas funcionalidades.
Verificaciones rápidas si la instalación falla o el servicio no se inicia
- Revisar errores con
sudo systemctl status mariadb - Revisar registros detallados con
sudo journalctl -xe - Verificar espacio en disco con
df -h
En la mayoría de los casos, el problema es falta de espacio en disco o un error tipográfico en un archivo de configuración.
Elegir la versión adecuada de MariaDB para tu versión de Ubuntu
Al usar MariaDB en Ubuntu, la opción más segura en la mayoría de los casos es la versión del repositorio predeterminado. Las actualizaciones de seguridad y la compatibilidad de dependencias se mantienen automáticamente, lo que la hace ideal para usuarios principiantes e intermedios.
Versión del repositorio predeterminado de Ubuntu (recomendado)
- Ubuntu 20.04 → serie MariaDB 10.3
- Ubuntu 22.04 → serie MariaDB 10.6
- Ubuntu 24.04 → serie MariaDB 10.11 (LTS)
A menos que tengas un requisito específico, estas versiones son totalmente prácticas para entornos de producción.
Si necesitas la versión más reciente (agregar el repositorio oficial de MariaDB)
Si necesitas las funcionalidades más nuevas, puedes agregar el repositorio oficial de MariaDB. Dado que apt-key está obsoleto, se utiliza el método signed-by.
① Guardar la clave GPG
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
| sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg
② Verificar el nombre en clave de tu Ubuntu
lsb_release -cs
Ejemplos:
- 20.04 →
focal - 22.04 →
jammy - 24.04 →
noble
③ Agregar el repositorio oficial (ejemplo: serie 10.11)
echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list
④ Actualizar paquetes e instalar
sudo apt update
sudo apt install mariadb-server mariadb-client
Notas al usar el repositorio oficial
- Puedes usar funcionalidades más nuevas que la versión predeterminada de Ubuntu
- Existe un riesgo futuro de conflictos de dependencias
- Se requiere una prueba exhaustiva para servidores de producción
Para producción, decide claramente si priorizas la estabilidad o las funcionalidades más recientes.
Cómo comprobar la versión de MariaDB instalada actualmente
mysql --version
Ejemplo:
mysql Ver 15.1 Distrib 10.6.16-MariaDB
Al confirmar explícitamente la versión, la solución de problemas y el trabajo de migración se vuelven mucho más fáciles.
Guía completa para la configuración inicial de seguridad de MariaDB (mysql_secure_installation)
Inmediatamente después de instalar MariaDB, solo se aplican configuraciones de seguridad mínimas. Para operar de forma segura, asegúrate de ejecutar el siguiente comando:
sudo mysql_secure_installation
Al ejecutarlo, aparecerán varios mensajes. En la mayoría de los casos, se recomiendan las siguientes respuestas.
Respuestas recomendadas
- Introduzca la contraseña actual para root: → Pulse Enter (no establecida en la primera ejecución)
- ¿Cambiar a autenticación unix_socket? → S (Recomendado en Ubuntu)
- ¿Cambiar la contraseña de root? → N (Si se usa autenticación unix_socket)
- ¿Eliminar usuarios anónimos? → S
- ¿Desactivar el acceso remoto de root? → S
- ¿Eliminar la base de datos de prueba y su acceso? → S
- ¿Recargar las tablas de privilegios ahora? → S
Esto completa la configuración básica de seguridad.
Por qué no puedes iniciar sesión como root (Error de acceso denegado)
En Ubuntu, el usuario root usa autenticación unix_socket por defecto. Por lo tanto, el inicio de sesión estándar basado en contraseña no funcionará.
Síntoma de ejemplo
mysql -u root -p
→ Access denied for user 'root'@'localhost'
Método de inicio de sesión correcto (predeterminado en Ubuntu)
sudo mysql
Este es el método más seguro y recomendado.
Cómo cambiar root a autenticación por contraseña (solo si es necesario)
Solo cambia el método de autenticación si necesitas conectarte como root desde herramientas o aplicaciones externas.
① Connect to MariaDB
sudo mysql
② Cambiar el plugin de autenticación
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';
FLUSH PRIVILEGES;
③ Confirmar el cambio
SELECT user, host, plugin FROM mysql.user;
Si se muestra mysql_native_password, el cambio se realizó con éxito.
Cómo comprobar el método de autenticación actual
sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"
Principales métodos de autenticación:
- unix_socket → predeterminado en Ubuntu, seguro
- mysql_native_password → autenticación basada en contraseña
A menos que haya una razón específica, lo más seguro es mantener root usando autenticación unix_socket.
Errores comunes y soluciones
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
- Causa: Intentar iniciar sesión con contraseña
- Solución: Iniciar sesión usando
sudo mysql
mysql_secure_installation Not Found
- Verifica con
which mysql_secure_installation - Si no está instalado, ejecuta
sudo apt install mariadb-server
Configurar la codificación de caracteres a utf8mb4 (evitar texto corrupto)
Para manejar de forma segura texto multilingüe y emojis en MariaDB, se recomienda usar utf8mb4. Sin esta configuración, podrías encontrar problemas de codificación o pérdida de datos.
① Edit the Configuration File
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Agrega o modifica las siguientes líneas en la sección [mysqld]:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
② Restart MariaDB
sudo systemctl restart mariadb
③ Verify the Settings
sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"
Si se muestra utf8mb4, la configuración fue exitosa.
Especificar utf8mb4 al crear una base de datos (recomendado)
Si deseas definir explícitamente el conjunto de caracteres sin importar la configuración global, especifícalo al crear la base de datos.
CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
Todas las tablas creadas dentro de esta base de datos heredarán utf8mb4.
Crear un usuario de aplicación y otorgar permisos
En entornos de producción, nunca uses el usuario root para conexiones de aplicaciones. Crea un usuario dedicado y otorga solo los privilegios mínimos necesarios.
① Iniciar sesión en MariaDB
sudo mysql
② Crear un usuario (conexión local)
CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';
③ Conceder privilegios a la base de datos
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
Crear un usuario de acceso remoto (solo si es necesario)
Configure esto solo si necesita conectarse desde un servidor externo o un entorno en la nube.
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
Nota: El comodín “%” permite conexiones desde cualquier host. En entornos de producción, especificar una dirección IP concreta es más seguro.
Cómo comprobar usuarios y privilegios actuales
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'app_user'@'localhost';
Errores comunes de permisos y soluciones
Acceso denegado para el usuario ‘app_user’
- Especificación de host incorrecta (diferencia entre localhost y %)
- No se ejecutó
FLUSH PRIVILEGES - Nombre de base de datos incorrecto al conectar
Base de datos desconocida
- Error tipográfico en el nombre de la base de datos
- No se concedieron privilegios para la base de datos objetivo
Cómo permitir conexiones remotas en MariaDB (solución cuando falla el acceso externo)
Por defecto, MariaDB permite solo conexiones locales. Si necesita conectarse desde un servidor externo o un entorno en la nube, configure los siguientes ajustes.
① Cambiar bind-address
Edite el archivo de configuración:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Busque la siguiente línea:
bind-address = 127.0.0.1
Para permitir conexiones externas, cámbiela a:
bind-address = 0.0.0.0
Después de guardar, reinicie MariaDB:
sudo systemctl restart mariadb
② Abrir el puerto 3306 en el firewall
Si está usando UFW en Ubuntu:
sudo ufw allow 3306
sudo ufw reload
Para mayor seguridad, especifique la dirección IP de origen:
sudo ufw allow from 192.168.1.10 to any port 3306
③ Crear un usuario de acceso remoto
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
Para una mejor seguridad:
CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';
Lista de verificación si no puede conectarse externamente
1. ¿Está MariaDB en ejecución?
sudo systemctl status mariadb
2. ¿Está escuchando el puerto 3306?
sudo ss -tulnp | grep 3306
Si muestra 0.0.0.0:3306, está escuchando correctamente en todas las interfaces.
3. Si está usando un entorno en la nube (AWS / GCP / VPS)
- Asegúrese de que el puerto 3306 esté abierto en el grupo de seguridad
- Confirme que ningún firewall externo esté bloqueando la conexión
4. Causas según el mensaje de error
No se puede conectar al servidor MySQL
- El puerto está cerrado
bind-addressno se cambió- El firewall está bloqueando la conexión
Acceso denegado para el usuario
- Especificación de host del usuario incorrecta
- Contraseña incorrecta
- Privilegios no concedidos
Tiempo de conexión agotado
- Configuraciones de seguridad del lado de la nube
- Problemas de enrutamiento de red
Notas importantes de seguridad
- Evite usar “%” en entornos de producción
- Utilice acceso VPN siempre que sea posible
- Considere habilitar conexiones SSL/TLS
- Nunca permita el inicio de sesión remoto como root
Solución de problemas cuando MariaDB no arranca (error de fallo)
① Verificar el estado del servicio
sudo systemctl status mariadb
② Revisar los registros detallados
sudo journalctl -xe
sudo cat /var/log/mysql/error.log
③ Causas comunes
- Errores de sintaxis en el archivo de configuración
- Espacio en disco insuficiente
- Conflicto de puertos (MySQL ya está en ejecución)
④ Verificar el espacio en disco
df -h
Resumen de causas del error “Acceso denegado”
- Contraseña incorrecta
- Especificación de host incorrecta (diferencia entre localhost y %)
- No se ejecutó
FLUSH PRIVILEGES - Intentar iniciar sesión estándar como root (requiere
sudo mysql)
Mejoras básicas de rendimiento (para principiantes)
Advanced tuning is not required, but at minimum, confirm the following settings.
① Enable Slow Query Log
Add the following to 50-server.cnf:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
Restart MariaDB:
sudo systemctl restart mariadb
② Check Index Usage
Slow queries may be missing proper indexes.
EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';
③ Check Server Resources
top
htop
If memory is insufficient, consider upgrading your server plan.
Frequently Asked Questions (FAQ)
How can I lock the MariaDB version on Ubuntu 22.04?
Use apt-mark hold mariadb-server.
How do I reset the root password if I forgot it?
You can reset it by starting in safe mode and reconfiguring the password. See our dedicated guide for detailed steps.
How do I change the MariaDB port number?
Modify 50-server.cnf to something like port = 3307, then restart the service.
Conclusion: Using MariaDB Safely on Ubuntu
- Using the default repository version is the safest option
- Always run mysql_secure_installation
- Never use root for application connections
- Enable remote access only when necessary
- When troubleshooting, checking logs is the top priority
By following these steps, you can build a secure and production-ready MariaDB environment on Ubuntu.


