Guía paso a paso para migrar una base de datos de MySQL a MariaDB en DirectAdmin
Introducción: ¿Por qué migrar de MySQL a MariaDB en DirectAdmin?
Si estás leyendo esto, probablemente ya has oído que MariaDB es una alternativa moderna, rápida y compatible con MySQL. Y sí, es cierto: MariaDB nació como un reemplazo directo de MySQL, pero con mejoras en rendimiento, seguridad y nuevas funcionalidades. Además, es completamente gratuita y de código abierto.
En este artículo, te guiaré paso a paso para migrar tus bases de datos de MySQL a MariaDB en un servidor con DirectAdmin. No necesitas ser un experto en sistemas, solo seguir las instrucciones con cuidado. Al final, tendrás tu base de datos funcionando en MariaDB sin perder ni un solo dato.
[INFO] Esta guía asume que tienes acceso root a tu servidor y que tu panel de control es DirectAdmin. Si usas Syspanel (antes conocido como HestiaCP), el puerto de acceso es el 2106, pero el proceso de migración es similar.
¿Qué necesitas antes de empezar?
Antes de lanzarte a migrar, asegúrate de tener lo siguiente:
- Acceso SSH a tu servidor con permisos de root.
- Acceso a DirectAdmin como administrador.
- Copia de seguridad de todas tus bases de datos. No te saltes este paso, por favor.
- Conocimiento básico de comandos de Linux (no te preocupes, los pondré aquí).
- Tiempo suficiente para que la migración no sea apresurada.
[WARNING] Nunca migres sin hacer un backup. Un error puede borrar tus datos para siempre. Hazlo ahora, antes de seguir.
Paso 1: Realiza una copia de seguridad completa de tus bases de datos
Este es el paso más importante. Vamos a exportar todas tus bases de datos MySQL a un archivo .sql. Así, si algo sale mal, podrás restaurarlo todo.
1.1. Conéctate por SSH a tu servidor
Abre tu terminal (Linux/Mac) o usa PuTTY en Windows. Escribe:
ssh root@tu-servidor.com
1.2. Exporta todas las bases de datos con mysqldump
Ejecuta este comando para crear un backup completo:
mysqldump -u root -p --all-databases > /root/backup_completo.sql
Te pedirá la contraseña de root de MySQL. Escríbela y presiona Enter. El archivo se guardará en /root/.
[TIP] Si tu base de datos es muy grande, puedes comprimir el backup:
mysqldump -u root -p --all-databases | gzip > /root/backup_completo.sql.gz. Luego, para descomprimirlo:gunzip /root/backup_completo.sql.gz.
1.3. Verifica que el backup se haya creado correctamente
Comprueba el tamaño del archivo:
ls -lh /root/backup_completo.sql
Si ves un tamaño mayor a 0, todo bien. Si no, repite el proceso.
Paso 2: Detén los servicios de MySQL y DirectAdmin
Para evitar conflictos durante la migración, vamos a detener los servicios que usan la base de datos.
2.1. Detén MySQL
systemctl stop mysql
O, si usas el nombre del servicio de MariaDB (más adelante):
systemctl stop mariadb
2.2. Detén DirectAdmin y otros servicios relacionados
systemctl stop directadmin
systemctl stop httpd
systemctl stop nginx # si usas Nginx
[INFO] No te preocupes si no tienes todos estos servicios. Detén solo los que tengas.
Paso 3: Desinstala MySQL e instala MariaDB
Ahora sí, vamos a reemplazar MySQL por MariaDB.
3.1. Desinstala MySQL
Dependiendo de cómo instalaste MySQL, usa uno de estos comandos:
# Si usas yum (CentOS/RHEL)
yum remove mysql-server mysql mysql-libs
# Si usas apt (Ubuntu/Debian)
apt-get remove --purge mysql-server mysql-client mysql-common
3.2. Limpia los paquetes residuales (opcional pero recomendado)
# En CentOS
yum autoremove
# En Ubuntu/Debian
apt-get autoremove
apt-get autoclean
3.3. Instala MariaDB
Primero, agrega el repositorio oficial de MariaDB (si no lo tienes). Ve a mariadb.org/download y sigue las instrucciones para tu sistema operativo.
Luego, instala:
# En CentOS
yum install MariaDB-server MariaDB-client
# En Ubuntu/Debian
apt-get install mariadb-server mariadb-client
3.4. Inicia MariaDB y habilítalo para que arranque automáticamente
systemctl start mariadb
systemctl enable mariadb
Paso 4: Configura MariaDB para que funcione como MySQL
MariaDB es compatible con MySQL, pero a veces hay que ajustar algunos parámetros.
4.1. Ejecuta el script de seguridad
mysql_secure_installation
Te hará algunas preguntas:
- ¿Cambiar contraseña de root? Pon "n" si ya tienes una.
- ¿Eliminar usuarios anónimos? "y".
- ¿Deshabilitar acceso remoto para root? "y" (a menos que lo necesites).
- ¿Eliminar base de datos de prueba? "y".
- ¿Recargar privilegios? "y".
4.2. Verifica que MariaDB esté funcionando
systemctl status mariadb
Debería mostrar "active (running)".
Paso 5: Restaura tus bases de datos desde el backup
Ahora vamos a importar todas tus bases de datos al nuevo MariaDB.
5.1. Restaura el backup
mysql -u root -p < /root/backup_completo.sql
Te pedirá la contraseña de root. Escríbela y espera. Dependiendo del tamaño, puede tardar unos minutos.
5.2. Verifica que los datos estén correctos
Conéctate a MariaDB:
mysql -u root -p
Luego, dentro del prompt de MariaDB, lista las bases de datos:
SHOW DATABASES;
Deberías ver todas tus bases de datos originales. También puedes revisar una tabla específica:
USE nombre_de_tu_base;
SELECT * FROM nombre_de_tabla LIMIT 5;
Si todo se ve bien, sal:
EXIT;
Paso 6: Reconfigura DirectAdmin para que use MariaDB
DirectAdmin necesita saber que ahora usas MariaDB. Vamos a actualizar su configuración.
6.1. Edita el archivo de configuración de DirectAdmin
nano /usr/local/directadmin/conf/mysql.conf
Busca la línea que dice mysql=mysql y cámbiala a mysql=mariadb. Guarda y cierra (Ctrl+O, Ctrl+X).
6.2. Reinicia DirectAdmin
systemctl start directadmin
6.3. Verifica que DirectAdmin reconozca MariaDB
Accede a DirectAdmin desde tu navegador (https://tu-servidor.com:2222). Ve a "Administración de servidores" > "Información del servidor". Deberías ver "MariaDB" en lugar de "MySQL".
Paso 7: Prueba que todo funcione correctamente
7.1. Prueba una aplicación web
Si tienes un sitio WordPress, Joomla o cualquier CMS, abre una página y verifica que cargue sin errores. También puedes iniciar sesión en el panel de administración.
7.2. Revisa los logs de errores
tail -f /var/log/mariadb/mariadb.log
Busca errores como "Access denied" o "Table not found". Si ves algo raro, revisa los pasos anteriores.
7.3. Ejecuta una consulta de prueba desde DirectAdmin
En DirectAdmin, ve a "Gestión de bases de datos" y selecciona una base de datos. Usa la herramienta phpMyAdmin (si la tienes instalada) para ejecutar una consulta simple, como SELECT 1;. Debería devolver "1".
Paso 8: Solución de problemas comunes
8.1. Error "Table 'mysql.user' doesn't exist"
Esto suele pasar porque MariaDB tiene una estructura de tablas de sistema diferente. Solución:
mysql_upgrade -u root -p
Este comando actualiza las tablas del sistema a la versión de MariaDB.
8.2. Error de conexión en DirectAdmin
Si DirectAdmin no se conecta a la base de datos, revisa el archivo /usr/local/directadmin/conf/mysql.conf y asegúrate de que la ruta al socket sea correcta. Por lo general, MariaDB usa /var/lib/mysql/mysql.sock.
8.3. Los sitios web muestran errores de base de datos
Verifica que los usuarios de las bases de datos tengan los permisos correctos. Puedes hacerlo desde MariaDB:
GRANT ALL PRIVILEGES ON nombre_base.* TO 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;
Preguntas frecuentes (FAQ)
¿Puedo migrar sin hacer backup?
No, nunca. Es como saltar de un avión sin paracaídas. Siempre haz backup.
¿Se pierden datos durante la migración?
No, si sigues los pasos correctamente. MariaDB es compatible con MySQL, así que los datos se importan sin problemas.
¿Qué pasa si tengo Syspanel (HestiaCP)?
El proceso es similar, pero recuerda que el puerto de acceso a Syspanel es el 2106. En lugar de DirectAdmin, deberás detener Syspanel y luego seguir los mismos pasos de instalación de MariaDB.
¿MariaDB es más rápido que MySQL?
En general, sí. MariaDB tiene optimizaciones de rendimiento y nuevas características que MySQL no tiene, como motores de almacenamiento adicionales.
¿Puedo volver a MySQL después de migrar?
Sí, pero es más complicado. Tendrías que desinstalar MariaDB, instalar MySQL y restaurar el backup. Siempre es mejor probar primero en un entorno de staging.
Conclusión
Migrar de MySQL a MariaDB en DirectAdmin no es tan complicado como parece. Con un buen backup, siguiendo estos pasos y verificando cada etapa, tendrás tu base de datos funcionando en MariaDB en menos de una hora. Recuerda que MariaDB es una opción más moderna y eficiente, y tu servidor lo notará.
Si encuentras algún problema, revisa los logs o consulta la documentación oficial de MariaDB. Y si usas Syspanel, no olvides el puerto 2106.
¡Buena suerte con tu migración!
[TIP] Después de la migración, monitorea el rendimiento de tu servidor durante unos días. Puedes usar herramientas como
htopomytoppara ver cómo se comporta MariaDB.
