Hosting PERU 18 Años
(01) 433-3745

9 8180 8180

Instalar MariaDB y MySQL en AlmaLinux

Indice

Instalar MariaDB y MySQL en AlmaLinux

Aprende a instalar MariaDB o MySQL en AlmaLinux para tus aplicaciones web. Esta guía cubre la instalación, configuración de seguridad, creación de bases de datos, usuarios y estrategias de backup para tu servidor de bases de datos.

MariaDB es la opción por defecto en AlmaLinux y es totalmente compatible con MySQL. Te mostramos cómo instalar ambas opciones para tu servidor VPS.

1. MariaDB vs MySQL

MariaDB fue creado por el fundador original de MySQL como un fork compatible. Aquí las diferencias principales:

Característica MariaDB MySQL
Licencia GPL (100% open source) GPL + propietaria (Oracle)
Compatibilidad Compatible con MySQL N/A
Rendimiento Generalmente más rápido Bueno
Motores de almacenamiento Más opciones (Aria, ColumnStore) InnoDB, MyISAM
En AlmaLinux Incluido en repositorios Requiere repo de Oracle
Comunidad Activa y abierta Controlada por Oracle

Recomendación: Usa MariaDB para la mayoría de proyectos. Es más rápido, totalmente open source y viene incluido en AlmaLinux. Solo elige MySQL si tu aplicación lo requiere específicamente.

2. Instalar MariaDB

Instalación básica

# Actualizar sistema
sudo dnf update -y

# Instalar MariaDB
sudo dnf install mariadb-server mariadb -y

# Iniciar y habilitar el servicio
sudo systemctl enable --now mariadb

# Verificar estado
sudo systemctl status mariadb

Verificar versión

# Ver versión instalada
mysql --version
# mysql  Ver 15.1 Distrib 10.5.22-MariaDB, for Linux

# También puedes usar
mariadb --version

Instalar versión específica de MariaDB

Si necesitas una versión más reciente:

# Agregar repositorio oficial de MariaDB
sudo nano /etc/yum.repos.d/mariadb.repo
# Contenido del archivo:
[mariadb]
name = MariaDB
baseurl = https://mirror.mariadb.org/yum/10.11/rhel/$releasever/$basearch
gpgkey = https://mirror.mariadb.org/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
# Instalar
sudo dnf install MariaDB-server MariaDB-client -y

3. Instalar MySQL

Si prefieres MySQL (Oracle):

Agregar repositorio de MySQL

# Descargar e instalar repositorio
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm -y

# Verificar repositorio
dnf repolist | grep mysql

Instalar MySQL

# Instalar MySQL Server
sudo dnf install mysql-community-server -y

# Iniciar y habilitar
sudo systemctl enable --now mysqld

# Verificar estado
sudo systemctl status mysqld

Obtener contraseña temporal (solo MySQL)

# MySQL genera una contraseña temporal para root
sudo grep 'temporary password' /var/log/mysqld.log

# Cambiar contraseña al primer acceso
mysql -u root -p
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'NuevaContraseña123!';

4. Configuración de Seguridad

Es crucial ejecutar el script de seguridad después de instalar:

mysql_secure_installation

# Ejecutar script de seguridad
sudo mysql_secure_installation

# Responder a las preguntas:
# - Set root password: Yes (establecer contraseña segura)
# - Remove anonymous users: Yes
# - Disallow root login remotely: Yes
# - Remove test database: Yes
# - Reload privilege tables: Yes

Acceder a MariaDB/MySQL

# Acceder como root
sudo mysql -u root -p

# O en AlmaLinux, si usas socket authentication:
sudo mysql

# Salir
exit

Configuración adicional

# Editar configuración de MariaDB
sudo nano /etc/my.cnf.d/mariadb-server.cnf

# Configuraciones recomendadas para producción:
[mysqld]
bind-address = 127.0.0.1
max_connections = 100
innodb_buffer_pool_size = 256M
innodb_log_file_size = 64M

5. Crear Bases de Datos y Usuarios

Crear base de datos

-- Acceder a MySQL/MariaDB
sudo mysql -u root -p

-- Crear base de datos
CREATE DATABASE mi_aplicacion;

-- Ver bases de datos
SHOW DATABASES;

-- Seleccionar base de datos
USE mi_aplicacion;

Crear usuario y asignar permisos

-- Crear usuario con contraseña
CREATE USER 'mi_usuario'@'localhost' IDENTIFIED BY 'ContraseñaSegura123!';

-- Dar todos los permisos sobre una base de datos
GRANT ALL PRIVILEGES ON mi_aplicacion.* TO 'mi_usuario'@'localhost';

-- Aplicar cambios
FLUSH PRIVILEGES;

-- Verificar permisos
SHOW GRANTS FOR 'mi_usuario'@'localhost';

Permisos específicos

-- Solo lectura
GRANT SELECT ON mi_aplicacion.* TO 'usuario_lectura'@'localhost';

-- Lectura y escritura
GRANT SELECT, INSERT, UPDATE ON mi_aplicacion.* TO 'usuario_app'@'localhost';

-- Todos los permisos excepto GRANT
GRANT ALL PRIVILEGES ON mi_aplicacion.* TO 'admin'@'localhost';

-- Revocar permisos
REVOKE DELETE ON mi_aplicacion.* FROM 'usuario'@'localhost';

-- Eliminar usuario
DROP USER 'usuario'@'localhost';

Acceso remoto (si es necesario)

-- Crear usuario para acceso remoto (usar con precaución)
CREATE USER 'usuario_remoto'@'%' IDENTIFIED BY 'ContraseñaSegura!';
GRANT ALL PRIVILEGES ON mi_aplicacion.* TO 'usuario_remoto'@'%';
FLUSH PRIVILEGES;
# Permitir en firewall (puerto 3306)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

# Editar bind-address en configuración
# bind-address = 0.0.0.0

6. Backup y Restauración

Backup con mysqldump

# Backup de una base de datos
mysqldump -u root -p mi_aplicacion > backup_mi_aplicacion.sql

# Backup de todas las bases de datos
mysqldump -u root -p --all-databases > backup_completo.sql

# Backup comprimido
mysqldump -u root -p mi_aplicacion | gzip > backup_$(date +%Y%m%d).sql.gz

# Solo estructura (sin datos)
mysqldump -u root -p --no-data mi_aplicacion > estructura.sql

# Solo datos (sin estructura)
mysqldump -u root -p --no-create-info mi_aplicacion > datos.sql

Restaurar backup

# Restaurar desde archivo SQL
mysql -u root -p mi_aplicacion < backup_mi_aplicacion.sql

# Restaurar desde archivo comprimido
gunzip < backup.sql.gz | mysql -u root -p mi_aplicacion

# Crear base de datos y restaurar
mysql -u root -p -e "CREATE DATABASE nueva_bd;"
mysql -u root -p nueva_bd < backup.sql

Script de backup automático

# Crear script
sudo nano /usr/local/bin/backup-mysql.sh
#!/bin/bash
# Script de backup automático para MySQL/MariaDB

BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
MYSQL_USER="root"
MYSQL_PASS="tu_contraseña"

# Crear directorio si no existe
mkdir -p $BACKUP_DIR

# Backup de todas las bases de datos
mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases | gzip > $BACKUP_DIR/all_db_$DATE.sql.gz

# Eliminar backups mayores a 7 días
find $BACKUP_DIR -type f -mtime +7 -delete

echo "Backup completado: $BACKUP_DIR/all_db_$DATE.sql.gz"
# Dar permisos de ejecución
sudo chmod +x /usr/local/bin/backup-mysql.sh

# Programar en cron (diario a las 2am)
sudo crontab -e
# Agregar línea:
0 2 * * * /usr/local/bin/backup-mysql.sh >> /var/log/mysql-backup.log 2>&1

Preguntas Frecuentes

¿MariaDB o MySQL, cuál usar?

Recomendamos MariaDB para la mayoría de casos. Es 100% open source, más rápido en muchos escenarios y viene incluido en los repositorios de AlmaLinux. Es compatible con MySQL, así que las aplicaciones funcionarán igual. Solo usa MySQL si tu aplicación lo requiere específicamente.

¿Cómo crear una base de datos en AlmaLinux?

Accede a MySQL/MariaDB con sudo mysql -u root -p, luego ejecuta CREATE DATABASE nombre_bd;. Para crear un usuario: CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña'; y asignar permisos: GRANT ALL ON nombre_bd.* TO 'usuario'@'localhost';

¿Cómo hacer backup de MySQL en AlmaLinux?

Usa mysqldump: mysqldump -u root -p nombre_bd > backup.sql para una base de datos, o mysqldump -u root -p --all-databases > backup_completo.sql para todas. Para restaurar: mysql -u root -p nombre_bd < backup.sql. Recomendamos automatizar los backups con cron.

¿Necesitas un VPS con AlmaLinux?

Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.

Ver Planes VPS

¿Necesitas un VPS con AlmaLinux?

Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.

Ver Planes VPS