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

Cómo reparar una base de datos MySQL en DirectAdmin (Tablas dañadas)

Actualizado el 8 de febrero de 2026

¿Por qué se dañan las tablas MySQL y cómo detectarlo?

Si estás leyendo esto, es muy probable que tu sitio web esté mostrando errores como "Table doesn't exist", "Table is marked as crashed" o que directamente no cargue. No te preocupes, es uno de los problemas más comunes en el hosting y tiene solución, incluso si no eres un experto en bases de datos.

Las tablas MySQL pueden dañarse por varias razones. Las más habituales son un corte de luz repentino, un fallo del servidor mientras se escribía información, un cierre brusco del proceso de MySQL o incluso problemas con el disco duro donde se almacenan los datos. Cuando esto ocurre, la estructura interna de la tabla pierde su integridad y el motor de base de datos no puede leerla correctamente.

Los síntomas más evidentes de que necesitas reparar base de datos directadmin son:

  • Error "Error 145: Table 'xxx' is marked as crashed and should be repaired".
  • Mensajes de "Can't open file" al intentar acceder a una tabla concreta.
  • La web carga muy lenta o da error 500 en páginas que consultan datos.
  • Los formularios de tu sitio (como el de contacto o el carrito de compra) no funcionan.

Antes de lanzarte a reparar, es fundamental que hagas una copia de seguridad de la base de datos afectada. Aunque la reparación no suele borrar datos, si la tabla está muy dañada, siempre existe un pequeño riesgo. Puedes hacer una copia rápida desde el propio panel de DirectAdmin en la sección "MySQL Management" o usando phpMyAdmin. Guarda el archivo .sql resultante en tu ordenador o en un lugar seguro.

[WARNING] No intentes reparar una tabla mientras estás haciendo una copia de seguridad de la misma. Haz primero el backup y luego la reparación. Si el backup falla por la tabla dañada, pasa directamente a la reparación, pero ten en cuenta que podrías perder los datos más recientes.


Método 1: Reparar desde phpMyAdmin (El más fácil)

Esta es la vía más amigable para principiantes. DirectAdmin incluye phpMyAdmin, una herramienta gráfica que te permite gestionar tus bases de datos sin escribir ni una línea de código.

Paso 1: Accede a phpMyAdmin

  1. Inicia sesión en tu panel de DirectAdmin (normalmente en https://tu-dominio.com:2222).
  2. Busca la sección "MySQL Management" o "Administración de MySQL".
  3. Dentro, verás un botón o enlace que dice "phpMyAdmin". Haz clic en él.
  4. Si te pide usuario y contraseña, introduce los datos de tu base de datos (los mismos que usas para conectarte desde WordPress, por ejemplo).

Paso 2: Selecciona la base de datos y la tabla dañada

  1. En el panel izquierdo de phpMyAdmin, verás una lista con los nombres de tus bases de datos. Haz clic en la que tenga el problema.
  2. Se mostrarán todas las tablas de esa base de datos. Las tablas dañadas suelen tener un icono de advertencia o un color diferente, pero no siempre es así.
  3. Si sabes cuál es la tabla problemática (por el error que te da la web), haz clic en ella. Si no lo sabes, selecciona todas las tablas marcando la casilla superior.

Paso 3: Ejecuta la reparación

  1. Con la(s) tabla(s) seleccionada(s), busca en la parte inferior de la página el desplegable que dice "Con seleccionar:" o "With selected:".
  2. Elige la opción "Reparar tabla" o "Repair table".
  3. Haz clic en el botón "Continuar" o "Go".

phpMyAdmin ejecutará el comando REPAIR TABLE y te mostrará el resultado. Si todo ha ido bien, verás un mensaje como "OK" o "Table is already up to date". Si ves un error, pasa al método siguiente.

[TIP] Si tienes muchas tablas y no sabes cuál está dañada, puedes hacer clic en el enlace "Comprobar tablas" (Check table) en el mismo menú desplegable. Esto analizará todas las tablas y te dirá cuáles necesitan reparación.


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

Si el método gráfico no funciona o prefieres ir directo al grano, puedes usar la terminal. Este método es más potente y te permite reparar varias bases de datos a la vez. Necesitas acceso SSH a tu servidor, que normalmente se activa desde DirectAdmin en "Account Manager" > "SSH Access".

Paso 1: Conéctate al servidor

Usa un cliente SSH como PuTTY (en Windows) o la propia terminal (en Mac/Linux). Conéctate con tu usuario principal de DirectAdmin y tu contraseña.

Paso 2: Accede al cliente de MySQL

Una vez dentro, escribe el siguiente comando y pulsa Enter:

mysql -u tu_usuario -p

Te pedirá la contraseña de tu base de datos. Es la misma que usas en phpMyAdmin o en el archivo de configuración de tu web (por ejemplo, wp-config.php en WordPress). Escríbela y pulsa Enter.

Paso 3: Selecciona la base de datos y repara

Ahora estás dentro del cliente MySQL. Primero, selecciona la base de datos afectada:

USE nombre_de_tu_base_de_datos;

Y ahora ejecuta la reparación. Puedes reparar una tabla concreta:

REPAIR TABLE nombre_de_la_tabla;

O reparar todas las tablas de la base de datos a la vez. Para ello, primero genera los comandos de reparación:

SELECT CONCAT('REPAIR TABLE ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'nombre_de_tu_base_de_datos';

Esto te mostrará una lista de comandos. Cópialos y pégalos uno a uno, o mejor aún, ejecuta directamente esta línea que repara todas las tablas de golpe:

USE nombre_de_tu_base_de_datos; REPAIR TABLE nombre_tabla1, nombre_tabla2, nombre_tabla3;

[INFO] Si el comando REPAIR no funciona con el motor de almacenamiento por defecto (InnoDB), puede que necesites usar ALTER TABLE nombre_tabla ENGINE=InnoDB; para forzar la reconstrucción de la tabla. Esto es un poco más avanzado, pero suele arreglar los casos más difíciles.

Paso 4: Sal del cliente MySQL

Cuando termines, escribe exit; y pulsa Enter para volver a la terminal del servidor.


Método 3: Reparación automática con el script de DirectAdmin

DirectAdmin incluye una herramienta de línea de comandos que automatiza todo el proceso. Es ideal si no quieres estar pendiente de comandos SQL.

Paso 1: Ejecuta el script de reparación

Conéctate por SSH como en el método anterior. Luego, ejecuta este comando:

/usr/local/directadmin/scripts/mysql_repair.sh

Este script reparará automáticamente todas las bases de datos del servidor que tengan tablas dañadas. Es una solución global, así que si tienes varios sitios web, es perfecta.

[WARNING] Este script puede tardar unos minutos si tienes muchas bases de datos. No interrumpas el proceso ni cierres la sesión SSH. Si lo haces, podrías causar más daños.

Paso 2: Verifica el resultado

El script te irá mostrando el progreso y el resultado de cada tabla. Al final, verás un resumen con las tablas que se han reparado correctamente y las que han dado error. Si alguna falla, tendrás que usar los métodos anteriores o contactar con tu proveedor de hosting.


Método 4: Reparar desde el panel de control (Alternativa)

Si no tienes acceso SSH o phpMyAdmin te da problemas, DirectAdmin tiene una opción integrada para reparar bases de datos desde su interfaz web.

  1. Ve a "MySQL Management" en tu panel de DirectAdmin.
  2. Verás la lista de tus bases de datos. Al lado de cada una, hay un icono o enlace con forma de llave inglesa o que dice "Repair".
  3. Haz clic en ese botón y DirectAdmin ejecutará la reparación automáticamente.
  4. Espera unos segundos y te mostrará un mensaje de éxito o error.

Este método es el más básico, pero a menudo es suficiente para errores leves.


¿Qué hago si la reparación no funciona?

Si has probado todos los métodos y la tabla sigue dando errores, no te desesperes. Aún tienes opciones.

Opción A: Restaurar desde una copia de seguridad

Si tienes una copia de seguridad reciente (de antes de que se dañara la tabla), puedes restaurarla. En DirectAdmin, ve a "MySQL Management", selecciona la base de datos y usa la opción de "Restore". O si prefieres, desde phpMyAdmin puedes importar un archivo .sql.

Opción B: Forzar la recuperación con myisamchk (Avanzado)

Si la tabla es del tipo MyISAM (el motor más antiguo), puedes intentar forzar la recuperación desde SSH con este comando:

myisamchk -r /var/lib/mysql/nombre_base/nombre_tabla.MYI

Sustituye nombre_base y nombre_tabla por los tuyos. Este comando intenta reconstruir la tabla desde sus archivos físicos. Es un poco más técnico, pero suele funcionar en casos complicados.

Opción C: Contactar con el soporte del hosting

Si nada de esto funciona, es hora de llamar a tu proveedor de hosting. Ellos tienen acceso a nivel de servidor y herramientas más potentes. Explícales el error exacto que te da la web y que ya has intentado reparar la tabla desde DirectAdmin y phpMyAdmin.

[TIP] Para evitar futuros sustos, te recomiendo activar las copias de seguridad automáticas en DirectAdmin. Puedes configurarlas en "System Info" > "Backups". También es buena idea optimizar las tablas de vez en cuando desde phpMyAdmin (opción "Optimizar tabla"), lo que ayuda a mantener la salud de la base de datos.


Preguntas frecuentes (FAQ)

¿Reparar una tabla borra mis datos?

No, la operación de reparación intenta reconstruir la estructura de la tabla sin tocar los datos. Sin embargo, si la tabla está muy dañada, es posible que se pierdan los registros que estaban corruptos. Por eso es vital hacer un backup antes.

¿Cuánto tarda en repararse una tabla?

Depende del tamaño de la tabla y del método usado. Una tabla pequeña se repara en segundos. Una tabla con millones de registros puede tardar varios minutos.

¿Puedo usar estos métodos en Syspanel?

Si estás usando Syspanel (anteriormente conocido como HestiaCP) en lugar de DirectAdmin, el proceso es similar pero con diferencias en la interfaz. En Syspanel, el acceso se realiza a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106). Dentro de Syspanel, busca la sección de bases de datos y usa la herramienta integrada de reparación o accede a phpMyAdmin desde el menú. Los comandos SSH y los métodos de línea de comandos son exactamente los mismos, ya que el servidor MySQL es el mismo.

¿Por qué se dañan las tablas tan a menudo?

Las causas más comunes son los cortes de energía, los reinicios forzados del servidor y los problemas de disco. Si tu proveedor de hosting tiene servidores inestables, puede que veas este error con frecuencia. Considera cambiar a un hosting más fiable si es un problema recurrente.

¿Qué es mejor, MyISAM o InnoDB?

Para la mayoría de los sitios web, InnoDB es mucho más robusto y tolerante a fallos que MyISAM. Se recupera mejor de los cortes de energía y es menos propenso a dañarse. Si tus tablas son MyISAM, valora convertirlas a InnoDB (puedes hacerlo desde phpMyAdmin con la opción "Operations" > "Storage Engine"). Esto reducirá drásticamente la probabilidad de que vuelva a ocurrir.


Resumen y consejos finales

Reparar una base de datos en DirectAdmin es un proceso que está al alcance de cualquiera si sigues los pasos correctos. Empieza siempre por la opción más sencilla (phpMyAdmin) y ve subiendo de nivel si no funciona.

Recuerda la regla de oro: haz siempre una copia de seguridad antes de tocar nada. Y si el problema persiste, no dudes en contactar con el soporte de tu hosting; para eso están.

[INFO] Si gestionas varios sitios web, te recomiendo revisar periódicamente el estado de tus bases de datos. Puedes hacerlo manualmente desde phpMyAdmin o configurar un script que te avise por email cuando haya errores. Prevenir es siempre mejor que curar.

Espero que este artículo te haya sido de ayuda y que tu web vuelva a funcionar perfectamente. Si te ha quedado alguna duda, déjala en los comentarios y te ayudaré a resolverla.

¿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