Cómo migrar una base de datos MySQL a MariaDB en DirectAdmin
¡Hola! ¿Tienes un sitio web o aplicación funcionando con MySQL en tu servidor DirectAdmin y estás considerando dar el salto a MariaDB? ¡Excelente decisión! MariaDB es un sistema de gestión de bases de datos derivado de MySQL, creado por los mismos desarrolladores originales, que ofrece mejor rendimiento, más motores de almacenamiento y mayor seguridad, siendo 100% compatible.
En esta guía completa y fácil de seguir, te explicaré paso a paso cómo realizar la migración de tu base de datos MySQL a MariaDB en DirectAdmin. No necesitas ser un experto en sistemas, solo seguir las instrucciones al pie de la letra. Empecemos.
¿Por qué migrar de MySQL a MariaDB?
Antes de meternos en faena, es bueno que sepas por qué merece la pena este cambio. MariaDB no es un reemplazo cualquiera; es un drop-in replacement, lo que significa que puedes sustituir MySQL sin modificar una sola línea de tu código. Las ventajas principales son:
- Rendimiento superior: MariaDB es notablemente más rápido en consultas complejas y manejo de grandes volúmenes de datos.
- Más motores de almacenamiento: Incluye motores como Aria, MyRocks y Spider, que ofrecen opciones avanzadas de caché, compresión y escalabilidad.
- Seguridad mejorada: Dispone de funciones de cifrado nativas y autenticación más robusta.
- Actualizaciones y parches más rápidos: Al ser una comunidad muy activa, las mejoras y correcciones de seguridad llegan antes.
- 100% compatible con MySQL: Tus aplicaciones, scripts y consultas SQL funcionarán sin cambios.
Requisitos previos antes de migrar
Para que la migración sea un éxito, asegúrate de tener lo siguiente:
- Acceso a DirectAdmin como usuario administrador (reseller) o con permisos de gestión de bases de datos.
- Acceso SSH (Secure Shell) a tu servidor. Si no sabes qué es, no te preocupes, te guiaré.
- Una copia de seguridad reciente de todas tus bases de datos. Este paso es obligatorio.
- Conocimiento básico del panel de control de DirectAdmin.
[WARNING] ¡Haz siempre una copia de seguridad completa! Aunque el proceso es seguro, cualquier fallo podría dejarte sin datos. No te saltes este paso.
Paso 1: Realizar una copia de seguridad de tus bases de datos MySQL
Este es el paso más importante. Vamos a exportar todas tus bases de datos desde MySQL. Lo haremos de dos formas para que tengas un respaldo doble.
Opción A: Desde DirectAdmin (más fácil)
- Inicia sesión en DirectAdmin.
- Ve a Gestión de Cuentas > Administrador de Bases de Datos (o busca "MySQL Management").
- Verás una lista de todas tus bases de datos. Al lado de cada una, haz clic en phpMyAdmin.
- En phpMyAdmin, selecciona la base de datos en el panel izquierdo.
- Haz clic en la pestaña Exportar.
- Elige el método Rápido y formato SQL. Luego haz clic en Continuar.
- Se descargará un archivo
.sqlcon toda la estructura y datos. Repite para cada base de datos.
Opción B: Desde SSH (más rápido para muchas bases)
-
Conéctate a tu servidor por SSH. Si no tienes cliente SSH, usa la terminal de tu sistema operativo.
-
Ejecuta este comando para exportar todas las bases de datos a un solo archivo:
mysqldump -u root -p --all-databases > backup_completo.sqlTe pedirá la contraseña de root de MySQL. Si no la tienes, puedes usar un usuario con permisos de lectura.
-
El archivo
backup_completo.sqlse guardará en tu directorio actual. Puedes moverlo a un lugar seguro.
[TIP] Guarda una copia de este archivo en tu ordenador local o en un servicio en la nube por si acaso.
Paso 2: Detener MySQL y desinstalarlo (con cuidado)
Ahora toca el cambio. Detendremos el servicio MySQL y lo eliminaremos para instalar MariaDB.
1. Detener el servicio MySQL
Conéctate por SSH y ejecuta:
service mysql stop
O si usas systemd:
systemctl stop mysql
2. Desinstalar MySQL (sin eliminar datos)
Es importante no borrar los archivos de datos (por si acaso). Usa estos comandos:
# En sistemas basados en Debian/Ubuntu (como los de la mayoría de servidores)
apt-get remove --purge mysql-server mysql-client mysql-common -y
# En sistemas basados en CentOS/RHEL
yum remove mysql-server mysql -y
[INFO] No te preocupes, los datos de las bases de datos se almacenan en /var/lib/mysql. No se eliminarán a menos que borres esa carpeta manualmente. Pero por seguridad, puedes renombrarla: mv /var/lib/mysql /var/lib/mysql_backup.
Paso 3: Instalar MariaDB en tu servidor
Ahora instalaremos MariaDB. La versión recomendada es la 10.11 (LTS) o superior.
1. Añadir el repositorio oficial de MariaDB
Para asegurarte de tener la última versión estable, añadimos el repositorio oficial. Conéctate por SSH y ejecuta:
# Para Debian/Ubuntu
apt-get install software-properties-common -y
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.rackspace.com/mariadb/repo/10.11/ubuntu focal main'
# Ajusta 'focal' por tu versión de Ubuntu (ej: jammy para 22.04)
Si usas CentOS, el proceso es similar pero con yum.
2. Instalar MariaDB
Una vez añadido el repositorio:
# Debian/Ubuntu
apt-get update
apt-get install mariadb-server mariadb-client -y
# CentOS/RHEL
yum install MariaDB-server MariaDB-client -y
3. Iniciar y habilitar MariaDB
systemctl start mariadb
systemctl enable mariadb
4. Ejecutar el script de seguridad
MariaDB incluye un script para asegurar la instalación:
mysql_secure_installation
Te hará varias preguntas: establecer contraseña de root, eliminar usuarios anónimos, deshabilitar login remoto de root, etc. Responde Y (yes) a todas.
Paso 4: Migrar los datos de MySQL a MariaDB
Ahora que MariaDB está funcionando, vamos a importar los datos que respaldaste.
Opción A: Si exportaste desde phpMyAdmin (archivos individuales)
- Vuelve a DirectAdmin y entra a phpMyAdmin (ahora apuntará a MariaDB).
- Crea una base de datos nueva con el mismo nombre que la original.
- Selecciona la base de datos y haz clic en Importar.
- Elige el archivo
.sqlque descargaste y haz clic en Continuar. - Repite para cada base de datos.
Opción B: Si exportaste todo desde SSH (archivo único)
-
Sube el archivo
backup_completo.sqlal servidor (por ejemplo, a/root/). -
Ejecuta el siguiente comando para importar todo:
mysql -u root -p < backup_completo.sqlIntroduce la contraseña de root de MariaDB (la que acabas de establecer).
[WARNING] Si durante la importación ves errores de "duplicado" o "tabla ya existe", es normal si ya creaste las bases antes. Puedes ignorarlos o borrar las bases vacías primero.
Paso 5: Verificar que todo funciona
Después de la importación, es hora de comprobar que los datos están ahí y que tu web/aplicación funciona.
Verificar bases de datos
Conéctate a MariaDB desde SSH:
mysql -u root -p
Luego dentro del prompt de MariaDB:
SHOW DATABASES;
Deberías ver todas tus bases de datos. Para ver las tablas de una:
USE nombre_de_tu_base;
SHOW TABLES;
Probar tu sitio web
Accede a tu web en el navegador. Si ves contenido dinámico (como posts, usuarios, productos), ¡la migración fue un éxito! Si ves algún error, revisa los logs de error de PHP o de MariaDB (en /var/log/mariadb/).
Paso 6: Ajustes finales en DirectAdmin (importante)
DirectAdmin por defecto está configurado para MySQL. Después de instalar MariaDB, es posible que necesites actualizar algunos parámetros.
1. Verificar que DirectAdmin reconoce MariaDB
En la mayoría de los casos, DirectAdmin detecta automáticamente MariaDB porque es compatible. Para confirmarlo:
- Ve a DirectAdmin > Admin Level > Server Settings > MySQL Settings.
- Asegúrate de que el campo MySQL Version muestre algo como "MariaDB 10.11" o similar.
2. Actualizar la configuración de PHP
A veces PHP necesita saber que ahora usas MariaDB. Edita el archivo de configuración de PHP (por ejemplo, /etc/php/8.1/cli/php.ini o /etc/php/8.1/apache2/php.ini) y busca la línea:
pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
Asegúrate de que apunte al socket de MariaDB (normalmente es el mismo). Si no, cámbialo.
3. Reiniciar servicios
systemctl restart apache2 # o nginx
systemctl restart php8.1-fpm # ajusta la versión
systemctl restart directadmin
Solución de problemas comunes (FAQ)
P: Después de migrar, mi web muestra "Error de conexión a la base de datos"
R: Lo más probable es que el usuario de la base de datos no tenga permisos en MariaDB. Vuelve a asignar los permisos desde DirectAdmin o desde la línea de comandos:
GRANT ALL PRIVILEGES ON tu_base.* TO 'tu_usuario'@'localhost' IDENTIFIED BY 'tu_contraseña';
FLUSH PRIVILEGES;
P: ¿Puedo tener MySQL y MariaDB al mismo tiempo?
R: Técnicamente sí, pero no es recomendable porque compiten por el mismo puerto (3306) y recursos. Si necesitas ambos, instala MariaDB en un puerto diferente (ej: 3307).
P: Mi web usa un CMS como WordPress, ¿necesito cambiar algo?
R: No. WordPress (y la mayoría de CMS) funcionan perfectamente con MariaDB. Solo asegúrate de que la extensión PHP mysqli o pdo_mysql esté activada.
P: ¿Qué pasa si uso Syspanel (HestiaCP) en lugar de DirectAdmin?
R: Si estás usando Syspanel (HestiaCP), el proceso es muy similar. Accede a tu panel a través del puerto 2106 (ejemplo: https://tudominio.com:2106). Luego, en lugar de DirectAdmin, busca la sección de bases de datos. El resto de pasos (exportar, instalar MariaDB, importar) son idénticos. Solo cambia la interfaz gráfica.
P: ¿Pierdo velocidad o funcionalidades al migrar?
R: Al contrario, ganarás velocidad y funcionalidades. MariaDB es más rápido y tiene características que MySQL no tiene, como tablas con cifrado nativo o el motor Aria.
Conclusión: ¡Migración exitosa!
Como has visto, migrar una base de datos MySQL a MariaDB en DirectAdmin es un proceso sencillo si sigues los pasos correctos. Lo más importante es la copia de seguridad y la verificación posterior. Ahora disfrutas de un motor de bases de datos más rápido, seguro y moderno.
Si tienes alguna duda durante el proceso, no dudes en contactar con tu proveedor de hosting o con la comunidad de DirectAdmin. ¡Buena suerte!
