Guía para reparar bases de datos MySQL en Plesk
¿Tu web se ha vuelto lenta, muestra errores como "Table is marked as crashed" o directamente no carga? No te preocupes, es un problema más común de lo que parece. Las bases de datos MySQL, como cualquier sistema, pueden sufrir corrupciones. Esta guía te enseñará paso a paso cómo reparar base de datos en Plesk de forma segura y efectiva, incluso si no eres un experto en servidores.
¿Por qué se corrompen las tablas MySQL?
Antes de ponernos manos a la obra, es útil entender por qué ocurre esto. Las causas más frecuentes son:
- Cortes de luz o apagados forzados del servidor: El servidor se apaga mientras escribe en la base de datos.
- Espacio en disco insuficiente: Si el disco duro está lleno, MySQL no puede completar escrituras.
- Errores de hardware: Discos duros defectuosos o con sectores dañados.
- Versiones incompatibles de MySQL: Al migrar de un servidor a otro con versiones diferentes.
- Scripts o plugins mal optimizados: Un plugin de WordPress o Joomla con errores puede generar consultas que dañen las tablas.
Los síntomas típicos son:
- Error 500 en tu web.
- Mensajes como
Table 'nombre_tabla' is marked as crashed and should be repaired. - Páginas en blanco o que cargan a medias.
- Errores al acceder al panel de administración de tu CMS (WordPress, PrestaShop, etc.).
Método 1: Reparar desde phpMyAdmin (El más fácil y visual)
Este es el método recomendado para la mayoría de usuarios, ya que no requiere usar comandos. Lo haremos todo desde la interfaz gráfica de Plesk.
Paso 1: Accede a tu base de datos en Plesk
- Inicia sesión en tu panel de Plesk.
- En el menú lateral izquierdo, busca y haz clic en "Bases de datos".
- Localiza la base de datos que quieres reparar. Si no la ves, asegúrate de que estás en la suscripción (dominio) correcta.
- Haz clic en el nombre de la base de datos.
Paso 2: Abre phpMyAdmin
- Verás un botón o enlace que dice "phpMyAdmin" o "Administrar". Haz clic en él.
- Se abrirá una nueva pestaña en tu navegador con phpMyAdmin. Importante: No toques las credenciales de acceso, phpMyAdmin se abrirá automáticamente.
Paso 3: Selecciona la base de datos y la tabla dañada
- En el panel izquierdo de phpMyAdmin, verás una lista de bases de datos. Haz clic en la que quieres reparar (la misma que abriste desde Plesk).
- Aparecerá una lista de todas las tablas de esa base de datos. Busca la que está corrupta (normalmente aparece con un mensaje de error o un icono de advertencia). Si no sabes cuál es, puedes repararlas todas.
Paso 4: Repara la tabla (o todas)
Para reparar una tabla específica:
- Haz clic en el checkbox (casilla) que está a la izquierda del nombre de la tabla.
- Justo debajo de la lista de tablas, verás un menú desplegable que dice "Con seleccionadas:". Selecciona "Reparar tabla".
- phpMyAdmin ejecutará la reparación y te mostrará un mensaje de éxito o fracaso.
Para reparar todas las tablas de la base de datos (más rápido si no sabes cuál falla):
- Haz clic en el checkbox que está en la cabecera de la tabla (al lado de "Nombre").
- Se seleccionarán todas las tablas.
- En el menú desplegable "Con seleccionadas:", elige "Reparar tabla".
- Espera a que termine el proceso.
[INFO] Este método usa el comando REPAIR TABLE de MySQL, que intenta corregir inconsistencias menores y recuperar datos. Es el primer paso y el más seguro.
Método 2: Reparar desde la línea de comandos (SSH)
Si phpMyAdmin no funciona o tienes muchas bases de datos, puedes usar SSH. Es más potente, pero requiere un poco más de atención.
Paso 1: Conéctate a tu servidor por SSH
Necesitarás un cliente SSH (como PuTTY en Windows o la terminal en Mac/Linux) y las credenciales de acceso root o un usuario con permisos de sudo.
Paso 2: Accede a la línea de comandos de MySQL
Una vez conectado, escribe el siguiente comando y presiona Enter:
mysql -u root -p
Te pedirá la contraseña de root de MySQL (no la de tu panel de control). Si no la sabes, puedes buscarla en Plesk en Herramientas y Configuración > Gestión de Acceso > Base de datos. O usa el usuario de la base de datos específica.
Paso 3: Selecciona la base de datos a reparar
Dentro del shell de MySQL, escribe:
USE nombre_de_tu_base_de_datos;
(Reemplaza nombre_de_tu_base_de_datos con el nombre real).
Paso 4: Ejecuta la reparación
Para reparar todas las tablas:
REPAIR TABLE nombre_de_la_tabla;
Para ver todas las tablas de la base de datos, escribe SHOW TABLES;
Para reparar todas las tablas de una vez:
REPAIR TABLE `tabla1`, `tabla2`, `tabla3`;
O, si quieres reparar todas las tablas de la base de datos activa, usa este truco:
mysqlcheck -u root -p --auto-repair nombre_de_tu_base_de_datos
(Este comando se ejecuta desde la terminal, no desde el shell de MySQL. Sal del shell con exit; y luego ejecútalo).
[WARNING] El comando mysqlcheck puede ser intensivo en recursos si la base de datos es muy grande. Es mejor hacerlo en horas de bajo tráfico.
Método 3: Reparar desde la terminal usando mysqlcheck (El más eficiente para lotes)
Este es mi favorito cuando hay que reparar varias bases de datos a la vez o todo el servidor.
Paso 1: Conéctate por SSH (como en el Método 2)
Paso 2: Ejecuta el comando de reparación
Para reparar una base de datos específica:
mysqlcheck -u root -p --auto-repair nombre_de_tu_base_de_datos
Para reparar TODAS las bases de datos del servidor:
mysqlcheck -u root -p --auto-repair --all-databases
Para reparar y optimizar a la vez (recomendado):
mysqlcheck -u root -p --auto-repair --optimize --all-databases
El flag --optimize desfragmenta las tablas, lo que mejora el rendimiento.
[TIP] Si tienes muchas bases de datos, este comando puede tardar varios minutos. Ten paciencia.
¿Qué hago si la reparación no funciona?
Si después de intentar los métodos anteriores la tabla sigue corrupta, no te desesperes. Puedes probar lo siguiente:
- Verifica el motor de almacenamiento: La mayoría de tablas usan InnoDB o MyISAM. El comando
REPAIR TABLEfunciona mejor con MyISAM. Para InnoDB, a veces es necesario un enfoque diferente. - Usa
CHECK TABLEantes de reparar: Esto te dará más información sobre el estado.CHECK TABLE nombre_tabla; - Forzar la reparación con opciones avanzadas: En la línea de comandos de MySQL (Método 2), puedes usar:
Esto usa el archivoREPAIR TABLE nombre_tabla USE_FRM;.frm(definición de la tabla) para reconstruirla. Úsalo con cuidado, ya que si el.frmtambién está corrupto, podrías perder la estructura. - Restaurar desde un backup: Esta debería ser tu última opción, pero la más segura. Si tienes una copia de seguridad reciente (y deberías tenerla), restaura la base de datos completa. En Plesk, ve a
Bases de datos, selecciona la base de datos y busca la opción "Restaurar desde un archivo".
Mantenimiento preventivo para evitar futuros problemas
Como dice el refrán, más vale prevenir que curar. Aquí tienes algunos consejos:
- Programa reparaciones automáticas: En Plesk, puedes configurar tareas programadas (cron jobs) para ejecutar
mysqlcheck --auto-repairsemanalmente. Esto es muy fácil de hacer desde el panel. - Monitorea el espacio en disco: Asegúrate de que tu servidor tenga al menos un 20% de espacio libre.
- Actualiza tu CMS y plugins: Las versiones antiguas suelen tener bugs que causan corrupción.
- Usa un sistema de backup automatizado: Plesk permite hacer backups diarios. Actívalos.
- Evita apagados bruscos: Si tienes un VPS, nunca apagues el servidor sin antes detener MySQL correctamente (
systemctl stop mysql).
Preguntas frecuentes (FAQ)
¿Cada cuánto debo reparar las bases de datos?
No hay una regla fija. Si tu web es muy dinámica (foros, tiendas), una vez al mes está bien. Si es un blog pequeño, cada 3-4 meses. Si no tienes síntomas, no lo hagas tan seguido.
¿Perderé datos al reparar una tabla?
En la mayoría de los casos, no. El comando REPAIR TABLE intenta recuperar la mayor cantidad de datos posible. Sin embargo, si la corrupción es severa, podrías perder algunas filas. Por eso es vital tener un backup.
¿Puedo reparar desde un panel como Syspanel?
Sí, si usas Syspanel (el antiguo HestiaCP, puerto 2106), el proceso es similar. Accedes a tu panel, buscas la sección de bases de datos y luego a phpMyAdmin. La interfaz puede variar ligeramente, pero los pasos dentro de phpMyAdmin son idénticos.
¿Qué significa "Table is marked as crashed"?
Es la forma que tiene MySQL de decirte que ha detectado un problema de integridad en una tabla. No significa que tu web esté en riesgo inmediato, pero sí que hay que actuar.
¿Es mejor usar InnoDB o MyISAM para evitar corrupciones?
InnoDB es mucho más robusto y tolerante a fallos que MyISAM. Si estás empezando un proyecto nuevo, usa siempre InnoDB. Si tienes tablas MyISAM, puedes migrarlas, pero es un proceso que requiere cuidado.
[INFO] Si después de leer esta guía te sientes inseguro, no dudes en contactar al soporte técnico de tu hosting. Reparar bases de datos es una tarea común y cualquier técnico puede hacerlo en minutos.
Espero que esta guía te haya sido útil. Con un poco de práctica, reparar bases de datos en Plesk se convertirá en una tarea más de tu rutina de mantenimiento. ¡Buena suerte!
