🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo reparar una base de datos MySQL dañada en DirectAdmin (paso a paso)

Actualizado el 3 de febrero de 2026

¿Por qué se daña una base de datos MySQL y cómo saber si es tu caso?

Si estás leyendo esto, probablemente ya viste algún mensaje de error raro en tu web, como "Table doesn't exist", "Error establishing a database connection" o un aviso en el panel de DirectAdmin indicando que una tabla está corrupta. No te preocupes: es un problema más común de lo que parece y, en la gran mayoría de los casos, tiene solución.

Una base de datos MySQL puede dañarse por varias razones: un corte de luz mientras se escribía información, un fallo del servidor, una actualización interrumpida, espacios en disco llenos, o incluso por algún plugin o script que hace consultas demasiado pesadas. El resultado es el mismo: las tablas internas pierden su integridad y MySQL no puede leerlas correctamente.

Los síntomas típicos de una tabla dañada son:

  • Mensajes de error como "MySQL server has gone away".
  • Páginas web que cargan en blanco o con errores de conexión.
  • Mensajes en el panel de control como "Table 'nombre_tabla' is marked as crashed and should be repaired".
  • Imposibilidad de acceder a phpMyAdmin o a la sección de bases de datos de DirectAdmin.
  • Errores en los logs del servidor relacionados con "corrupt", "crashed" o "repair".

Antes de lanzarte a reparar, haz una copia de seguridad. Aunque el proceso de reparación suele ser seguro, nunca está de más tener un respaldo por si acaso. En DirectAdmin puedes hacerlo desde la sección "Backup/Restore" o directamente desde phpMyAdmin exportando la base de datos completa.

Método 1: Reparar MySQL desde phpMyAdmin (el más fácil para principiantes)

Esta es la vía más rápida y visual, ideal si no te sientes cómodo con la línea de comandos. phpMyAdmin está integrado en DirectAdmin y te permite reparar tablas dañadas con un solo clic.

Paso 1: Accede a phpMyAdmin desde DirectAdmin

  1. Inicia sesión en tu panel de DirectAdmin.
  2. Busca el apartado "MySQL Management" o "Bases de Datos MySQL" (según la versión, puede variar).
  3. Verás un enlace directo a phpMyAdmin. Haz clic en él. Si no aparece, puedes ir a la URL: https://tudominio.com/phpmyadmin (siempre que esté habilitado).

Paso 2: Selecciona tu base de datos

En el panel izquierdo de phpMyAdmin verás la lista de todas tus bases de datos. Haz clic en la que te da problemas. Verás las tablas que contiene, normalmente en una lista con su nombre, tipo, tamaño y número de registros.

Paso 3: Marca las tablas dañadas

Si conoces qué tabla está dañada (por el mensaje de error), márcala con la casilla de la izquierda. Si no lo sabes, puedes marcarlas todas: no pasa nada por reparar tablas sanas, es un proceso inofensivo.

Paso 4: Elige la opción "Reparar tabla"

En el menú desplegable inferior (el que dice "Con seleccionadas:"), elige la opción "Reparar tabla" (en inglés, Repair table). Luego haz clic en el botón "Continuar".

Paso 5: Verifica el resultado

phpMyAdmin ejecutará el comando REPAIR TABLE y te mostrará un mensaje con el resultado. Si todo fue bien, verás algo como:

  • "status: OK"
  • "Op: repair"
  • "Msg_type: status"

Si alguna tabla no se pudo reparar con este método, te mostrará un error. En ese caso, pasa al Método 2.

[TIP] Si no sabes cuál es la tabla dañada, busca en los logs del servidor o en la sección "Base de datos" de DirectAdmin. A veces el propio panel te avisa con un icono de advertencia.

Método 2: Reparar MySQL desde la línea de comandos (SSH)

Si phpMyAdmin no funciona, o prefieres la potencia de la terminal, este método es el más completo. Necesitas acceso SSH a tu servidor y tener credenciales de root o de un usuario con permisos suficientes.

Paso 1: Conéctate por SSH

Usa un cliente como PuTTY (Windows) o directamente la terminal (Mac/Linux). Una vez dentro, escribe:

mysql -u usuario -p

Te pedirá la contraseña. Si tienes acceso root, puedes usar:

mysql -u root -p

Paso 2: Selecciona la base de datos

Dentro del cliente de MySQL, escribe:

USE nombre_base_datos;

Paso 3: Repara la tabla o tablas

El comando básico es:

REPAIR TABLE nombre_tabla;

Si quieres reparar todas las tablas de la base de datos, puedes usar este truco:

REPAIR TABLE nombre_base_datos.nombre_tabla;

Pero si son muchas, lo más práctico es generar el comando automáticamente. Sal de MySQL con exit; y ejecuta:

mysqlcheck -u usuario -p --repair nombre_base_datos

Este comando revisa y repara todas las tablas de esa base de datos. También puedes usar:

mysqlcheck -u usuario -p --repair --all-databases

Si quieres más agresividad, añade --use-frm:

mysqlcheck -u usuario -p --repair --use-frm nombre_base_datos

[INFO] El parámetro --use-frm fuerza a MySQL a usar el archivo .frm de la tabla para reconstruir la estructura. Es útil cuando el error es grave.

Paso 4: Verifica el estado de las tablas

Después de reparar, es buena práctica verificar que todo está correcto:

mysqlcheck -u usuario -p --check nombre_base_datos

Si no devuelve errores, tu base de datos está sana.

Método 3: Reparación forzada con herramientas de recuperación (casos extremos)

Si los métodos anteriores no funcionan, es posible que la tabla esté muy dañada o que el motor de almacenamiento (InnoDB o MyISAM) tenga problemas más profundos. Aquí van algunas opciones avanzadas.

Subsección: Reparación con myisamchk (solo para tablas MyISAM)

Si tus tablas son del tipo MyISAM, puedes usar la herramienta myisamchk directamente sobre los archivos físicos. Primero detén MySQL:

service mysql stop

Luego ejecuta:

myisamchk --recover /var/lib/mysql/nombre_base_datos/nombre_tabla

O para todas las tablas de la base:

myisamchk --recover /var/lib/mysql/nombre_base_datos/*.MYI

Después de esto, reinicia MySQL:

service mysql start

[WARNING] Este método es delicado. Solo hazlo si sabes lo que estás haciendo. Si no estás seguro, contacta con tu proveedor de hosting.

Subsección: Reparación de tablas InnoDB

Para tablas InnoDB, el proceso es diferente. Puedes intentar:

  1. Detener MySQL.
  2. Editar el archivo de configuración (/etc/my.cnf o /etc/mysql/my.cnf) y añadir:
innodb_force_recovery = 1
  1. Reiniciar MySQL. Esto hará que arranque en modo de recuperación.
  2. Hacer un volcado de la base de datos con mysqldump y luego restaurarla en una base nueva.

[WARNING] Este modo es solo para recuperar datos, no para operar normalmente. Quita la línea innodb_force_recovery después de recuperar los datos.

Prevención: Cómo evitar que se repita el problema

Una vez que hayas arreglado la base de datos, es hora de tomar medidas para que no vuelva a pasar. Aquí tienes una lista de buenas prácticas:

  • Configura copias de seguridad automáticas en DirectAdmin. Puedes programar backups diarios o semanales.
  • Monitoriza el espacio en disco. Si el disco se llena, MySQL puede corromper tablas.
  • Usa siempre versiones actualizadas de MySQL y de tu CMS (WordPress, Joomla, etc.).
  • Evita cortes de energía en tu servidor. Si es un VPS, considera un sistema de alimentación ininterrumpida (UPS).
  • Revisa los logs de MySQL periódicamente para detectar errores antes de que se conviertan en problemas graves.
  • Optimiza las tablas regularmente con OPTIMIZE TABLE o desde phpMyAdmin.

[TIP] Si tu web usa WordPress, instala un plugin de caché y optimización de base de datos. No solo mejora el rendimiento, sino que también reduce la probabilidad de corrupción.

Preguntas frecuentes (FAQ)

¿Qué significa exactamente "tabla dañada MySQL"?

Significa que la estructura interna de la tabla (índices, datos, o archivos de configuración) tiene inconsistencias. MySQL no puede leerla correctamente y por eso da errores.

¿Puedo reparar MySQL DirectAdmin sin acceso SSH?

Sí, en la mayoría de los casos puedes usar phpMyAdmin desde el propio panel de DirectAdmin. Es la opción más amigable para principiantes.

¿Cuánto tarda en repararse una base de datos?

Depende del tamaño. Una tabla pequeña se repara en segundos. Una base de datos de varios gigabytes puede tardar varios minutos.

¿Pierdo datos al reparar una tabla?

Normalmente no. El comando REPAIR TABLE intenta reconstruir la tabla y recuperar la mayor cantidad de datos posible. Sin embargo, en casos extremos, algunas filas irrecuperables pueden perderse. Por eso es vital tener una copia de seguridad.

¿Qué hago si el error persiste después de reparar?

Si tras intentar todos los métodos el error continúa, es probable que el problema sea más profundo (hardware, configuración de MySQL, etc.). Contacta con tu proveedor de hosting. Si usas un servidor dedicado o VPS, revisa los logs de sistema.

¿Es lo mismo reparar que optimizar una tabla MySQL?

No. Reparar arregla errores de integridad. Optimizar reorganiza los datos para mejorar el rendimiento y liberar espacio. Se complementan, pero no son lo mismo.

¿HestiaCP o Syspanel sirven para reparar MySQL?

Syspanel (antes conocido como HestiaCP) es otro panel de control que puedes encontrar en algunos servidores. Si tu hosting usa Syspanel, el acceso es por el puerto 2106 (por ejemplo, https://tudominio.com:2106). Allí también tendrás acceso a bases de datos, pero el proceso de reparación es el mismo: puedes usar phpMyAdmin o SSH. La lógica es idéntica a la de DirectAdmin.

Conclusión final

Reparar una base de datos MySQL dañada en DirectAdmin no tiene por qué ser una pesadilla. Con las herramientas adecuadas y siguiendo estos pasos, podrás arreglar la base de datos y devolver la normalidad a tu sitio web en cuestión de minutos.

Recuerda que la clave está en:

  1. Identificar el problema (tabla dañada).
  2. Hacer una copia de seguridad.
  3. Usar phpMyAdmin para el método rápido.
  4. Recurrir a SSH si necesitas más control.
  5. Aplicar medidas preventivas para evitar futuros sustos.

Si en algún momento te sientes perdido, no dudes en pedir ayuda a tu proveedor de hosting. La mayoría de ellos pueden reparar la base de datos por ti si les das acceso o les describes el error.

Y ahora que ya sabes cómo hacerlo, la próxima vez que veas un mensaje de mysql corrupto, ya sabes exactamente qué hacer. ¡Buena suerte y que tu web siga funcionando sin problemas!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel