Guía de despliegue

MariaDB en VPS: SQL libre, rápido y bajo control

Desplegar en un VPS Cloud →

Tutorial

MariaDB en VPS: SQL libre, rápido y bajo control

Bases de datos10 min de lectura9 pasos

MariaDB sigue siendo una base sólida para WordPress, Dolibarr, PrestaShop y muchas aplicaciones PHP. En un VPS ServOrbit, usted mantiene el control de las cuentas, los volúmenes, las copias de seguridad y la seguridad de red — sin depender de una oferta de alojamiento compartido opaca. Esta guía cubre la instalación completa, la configuración del rendimiento InnoDB, las copias de seguridad automatizadas y el acceso remoto seguro.

Contenido· ¿Por qué alojar MariaDB en un VPS?1/10
  1. 01¿Por qué alojar MariaDB en un VPS?
  2. 02Lo que puede hacer con MariaDB en su VPS
  3. 03Requisitos previos
  4. 04Instalar MariaDB en su VPS ServOrbit
  5. 05Copias de seguridad automatizadas con mariadb-dump
  6. 06Optimización: configurar InnoDB
  7. 07Acceso remoto seguro
  8. 08Resolución de problemas
  9. 09MariaDB 11.4 LTS vs MariaDB 10.11 LTS vs MySQL 8.0
  10. 10La documentación oficial

¿Por qué alojar MariaDB en un VPS?

MariaDB es un fork comunitario de MySQL, 100 % de código abierto, reconocido por su rendimiento, su fiabilidad y su compatibilidad total con las aplicaciones MySQL existentes. Alojado en un VPS, le libera de las restricciones del alojamiento compartido: sin límite de conexiones impuesto, sin cuotas arbitrarias sobre el tamaño de las bases de datos, y con la posibilidad de ajustar con precisión los parámetros del motor InnoDB según su carga real. Usted mantiene el control de sus copias de seguridad, sus usuarios y la seguridad de red, sin depender de un proveedor externo para cada operación de mantenimiento.

Hoy están disponibles dos versiones LTS: MariaDB 11.4 LTS (lanzada en mayo de 2024, soporte garantizado hasta 2028+) y MariaDB 10.11 LTS (soporte hasta febrero de 2028). Ambas son estables para producción; la 11.4 incorpora el abandono definitivo del cliente mysql en favor de mariadb, mejor paralelismo de hilos y mejoras en InnoDB.

Lo que puede hacer con MariaDB en su VPS

  • Alojar varias bases de datos para distintos proyectos o clientes en una sola instancia, con aislamiento por usuario de MariaDB
  • Conectar su aplicación Laravel, Symfony, WordPress o cualquier otro framework a través del puerto estándar 3306, en local o desde un servidor remoto protegido por firewall
  • Realizar copias de seguridad automatizadas con mariadb-dump y almacenarlas comprimidas con retención configurable
  • Configurar la replicación maestro-esclavo para garantizar la alta disponibilidad o descargar las lecturas intensivas
  • Optimizar el rendimiento ajustando innodb_buffer_pool_size, innodb_log_file_size y max_connections directamente en /etc/mysql/conf.d/
  • Gestionar sus bases de datos con interfaces gráficas como phpMyAdmin, Adminer o DBeaver conectadas de forma remota a través de un túnel SSH seguro

Requisitos previos

Antes de comenzar, compruebe que dispone de los siguientes elementos:

- Un VPS ServOrbit: 2 GB de RAM mínimo (uso ligero o pruebas), 4 GB recomendados en producción. MariaDB en sí consume poco, pero el pool de búferes InnoDB (innodb_buffer_pool_size) debe representar el 60-70 % de la RAM disponible para ser eficaz — en 2 GB quedan menos de 1,2 GB útiles después del sistema operativo.
- Acceso SSH root o sudo a su VPS.
- Una versión reciente de MariaDB: MariaDB 11.4 LTS (mayo de 2024, soporte hasta 2028+) o MariaDB 10.11 LTS (soporte hasta febrero de 2028). Evite 10.6 e inferiores en producción: se acercan al fin de soporte.
- Un firewall activo (UFW o equivalente): el puerto 3306 no debe estar nunca expuesto directamente a Internet.

Instalar MariaDB en su VPS ServOrbit

  1. Contratar un VPS Cloud ServOrbit

    Vaya a /vps-cloud y elija el plan adaptado a su carga. Para una instancia MariaDB de producción, un VPS con 2 vCPU y 4 GB de RAM es un buen punto de partida. Finalice el pedido y anote las credenciales SSH (IP, usuario, contraseña o clave) enviadas por correo electrónico.

  2. Conectarse al VPS por SSH

    Abra un terminal y conéctese a su VPS:

    ssh root@<your-ip>

    Si utiliza una clave SSH en lugar de contraseña:

    ssh -i ~/.ssh/my_key root@<your-ip>

    Una vez conectado, compruebe la versión del sistema y los recursos disponibles: free -m para la memoria, nproc para los núcleos.

  3. Acceder al Marketplace en su área de cliente

    Inicie sesión en su área de cliente ServOrbit y navegue hasta la sección «Mis VPS». Seleccione el VPS que acaba de contratar y haga clic en la pestaña «Marketplace» para acceder al catálogo de aplicaciones disponibles con instalación en 1 clic.

  4. Seleccionar MariaDB e iniciar la instalación

    En el Marketplace, busque «MariaDB» y haga clic en la ficha de la aplicación. Compruebe la versión propuesta (se recomienda MariaDB 10.11 LTS o 11.4 LTS) y haga clic en «Instalar». El sistema aprovisiona automáticamente MariaDB en su VPS, configura el servicio systemd y genera una contraseña root aleatoria que se le comunica al final de la instalación.

  5. Proteger la instalación con mysql_secure_installation

    Desde su sesión SSH, ejecute:

    mysql_secure_installation

    Este script interactivo le guía para definir o reforzar la contraseña root, eliminar los usuarios anónimos, desactivar la conexión root remota y eliminar la base de datos de prueba. Estos pasos son imprescindibles antes de cualquier uso en producción.

  6. Conectarse al shell de MariaDB

    Desde MariaDB 11, el cliente se llama mariadb (ya no mysql). Ambos funcionan bajo 10.11, pero mariadb es el comando canónico:

    mariadb -u root -p

    Introduzca la contraseña root definida en el paso anterior. Ahora está en el shell SQL interactivo (MariaDB [(none)]>).

  7. Crear una base de datos con utf8mb4

    Cree siempre las bases de datos con codificación utf8mb4 y cotejo utf8mb4_unicode_ci para el tratamiento correcto de todos los caracteres (incluidos los emojis):

    CREATE DATABASE my_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    SHOW DATABASES;

    SHOW DATABASES; confirma que su base de datos aparece en la lista.

  8. Crear un usuario de aplicación dedicado

    Nunca utilice root desde su aplicación. Cree un usuario limitado a su base de datos:

    CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strong_password';
    GRANT ALL PRIVILEGES ON my_app.* TO 'appuser'@'localhost';
    FLUSH PRIVILEGES;

    Su aplicación ya puede conectarse mediante el host 127.0.0.1, puerto 3306, con estas credenciales.

  9. Verificar que MariaDB se inicia automáticamente

    Asegúrese de que el servicio se reinicia tras un reinicio del VPS:

    systemctl enable mariadb
    systemctl status mariadb

    La salida debe mostrar active (running). Si el servicio no está activado al inicio, systemctl enable mariadb lo configura.

Copias de seguridad automatizadas con mariadb-dump

Una base de datos sin copias de seguridad automatizadas es una bomba de relojería. El siguiente script crea una copia de seguridad comprimida cada noche con retención de 7 días.

Cree el script de copia de seguridad en /usr/local/bin/backup-mariadb.sh:

#!/bin/bash
BACKUP_DIR="/var/backups/mariadb"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="root"
DB_PASS="your_root_password"
RETENTION=7

mkdir -p "$BACKUP_DIR"

DATABASES=$(mariadb -u"$DB_USER" -p"$DB_PASS" -e "SHOW DATABASES;" 2>/dev/null | \
  grep -vE "^(Database|information_schema|performance_schema|mysql|sys)$")

for DB in $DATABASES; do
  mariadb-dump \
    -u"$DB_USER" -p"$DB_PASS" \
    --single-transaction \
    --quick \
    --routines \
    --triggers \
    "$DB" | gzip > "$BACKUP_DIR/${DB}_${DATE}.sql.gz"
done

find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION -delete

Haga el script ejecutable y añada una tarea cron para ejecutarlo cada noche a las 02:00:

chmod +x /usr/local/bin/backup-mariadb.sh
crontab -e

Añada la siguiente línea:

0 2 * * * /usr/local/bin/backup-mariadb.sh >> /var/log/backup-mariadb.log 2>&1

Para restaurar una base de datos desde una copia de seguridad:

zcat /var/backups/mariadb/my_app_20261007_020000.sql.gz | mariadb -u root -p my_app

Optimización: configurar InnoDB

La configuración predeterminada de MariaDB es muy conservadora (solo unas decenas de MB para innodb_buffer_pool_size). En un VPS de producción, ajuste los parámetros InnoDB para aprovechar la memoria disponible.

Cree el archivo /etc/mysql/conf.d/performance.cnf:

[mysqld]
# InnoDB buffer pool: 60-70% of total RAM
# On 4 GB RAM → 2.5 GB
innodb_buffer_pool_size = 2560M

innodb_log_file_size = 640M

innodb_log_files_in_group = 2

# Query cache disabled on MariaDB 10.3+
query_cache_size = 0
query_cache_type = 0

max_connections = 150

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log

Ajuste innodb_buffer_pool_size según la RAM de su VPS: en 2 GB, use 1228M; en 8 GB, use 5632M.

Reinicie MariaDB para aplicar la configuración:

systemctl restart mariadb

Verifique que los parámetros se han aplicado correctamente:

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'query_cache_size';

Acceso remoto seguro

Por defecto, MariaDB solo escucha en 127.0.0.1 — esta es la configuración segura por defecto. Para el acceso desde una aplicación en otro servidor, existen dos enfoques.

Opción 1 — Túnel SSH (recomendada, sin abrir el puerto 3306)

Desde su máquina local o servidor de aplicaciones:

ssh -L 3306:127.0.0.1:3306 -N root@<mariadb-vps-ip>

Su aplicación se conecta entonces a 127.0.0.1:3306 localmente — el túnel SSH cifra el tráfico. Añada -f para poner el túnel en segundo plano.

Opción 2 — Conexión entre VPS con allowlisting de IP

Si su aplicación se ejecuta en otro VPS ServOrbit, abra el puerto únicamente para la IP de ese servidor:

# En /etc/mysql/conf.d/network.cnf
[mysqld]
bind-address = 0.0.0.0
ufw allow from <app-ip> to any port 3306

Cree el usuario MariaDB limitado a la IP del servidor de aplicaciones:

CREATE USER 'app'@'<app-ip>' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON my_app.* TO 'app'@'<app-ip>';
FLUSH PRIVILEGES;

Resolución de problemas

Estos son los cuatro errores más frecuentes al operar MariaDB en un VPS, y cómo resolverlos.

1. Can't connect to local MariaDB server through socket

El servicio MariaDB no está en ejecución o el socket no se encuentra.

systemctl status mariadb
systemctl start mariadb

Si el servicio se niega a iniciar, lea los registros:

journalctl -xe -u mariadb --no-pager | tail -40

2. Too many connections

El número de conexiones simultáneas ha alcanzado el límite. Aumente max_connections en /etc/mysql/conf.d/performance.cnf y recargue:

systemctl reload mariadb

3. Table '<name>' is marked as crashed

Una tabla MyISAM está dañada. Repárela:

mysqlcheck -u root -p --repair my_app table_name

4. Access denied for user 'root'@'localhost'

Contraseña root olvidada. Restablézcala en modo sin autenticación:

systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mariadb -u root

Luego en el shell de MariaDB:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;

Reinicie MariaDB normalmente: systemctl restart mariadb.

MariaDB 11.4 LTS vs MariaDB 10.11 LTS vs MySQL 8.0

Desplace la tabla

CriterioMariaDB 11.4 LTSMariaDB 10.11 LTSMySQL 8.0
LicenciaGPL v2 (comunitaria)GPL v2 (comunitaria)GPL v2 / Comercial (Oracle)
Soporte hasta2028+ (LTS, mayo 2024)Febrero 2028 (LTS)Abril 2026 (próximo EOL)
Cliente CLI`mariadb` (mysql obsoleto)`mariadb` y `mysql``mysql`
Rendimiento InnoDBMejorado (threadpool nativo)Estable y probadoBueno, optimizado por Oracle
Compatibilidad MySQLMuy alta (drop-in)Muy alta (drop-in)Referencia
JSON nativoSí (desde MariaDB 10.2)SíSí (columnas JSON)
RecomendaciónProyectos nuevos, migración desde MySQL 8.0Producción existente, máxima estabilidadSi dependencia Oracle/cloud específica

Nunca exponga el puerto 3306 directamente en Internet: configure su firewall para permitir las conexiones a MariaDB únicamente en local (127.0.0.1) o a través de un túnel SSH. Active también el registro de consultas lentas (slow_query_log = 1, long_query_time = 1) desde el principio para identificar rápidamente las consultas que hay que optimizar antes de que afecten a sus usuarios.

La documentación oficial

Para la configuración avanzada, las opciones propias de la herramienta y los cambios de versión, consulte la documentación oficial de MariaDB. Esta guía cubre la puesta en línea en un VPS ServOrbit; la documentación del editor sigue siendo la referencia para los ajustes finos.

Despliegue MariaDB en unos minutos en un VPS Cloud ServOrbit

Disfrute de un VPS de alto rendimiento con instalación de MariaDB en 1 clic, acceso root completo y soporte incluido — modalidad mensual sin compromiso, desde 99 DH/mes.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva