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

Reparar tablas MySQL corruptas en DirectAdmin

Actualizado el 22 de enero de 2026

¡Hola! Soy tu asistente técnico de confianza. Si estás leyendo esto, seguramente te has encontrado con un mensaje de error en tu panel de DirectAdmin que dice algo como "Table is marked as crashed" o "Repair table". No te preocupes, es un problema más común de lo que crees y, con la guía adecuada, puedes solucionarlo tú mismo sin necesidad de ser un experto en bases de datos.

En este artículo, te explicaré paso a paso cómo reparar tablas MySQL corruptas en DirectAdmin. Aprenderás a identificar el problema, usar las herramientas del panel y ejecutar comandos de reparación desde la terminal (si es necesario). Además, incluiremos consejos de prevención para que no vuelva a ocurrir.


¿Qué significa una tabla MySQL corrupta?

Imagina que tu base de datos es un archivo de Excel. Una tabla corrupta es como una celda que se ha roto o tiene datos ilegibles. Cuando MySQL intenta leer esa celda, falla y genera un error. Esto puede ocurrir por varias razones:

  • Apagones o cortes de electricidad mientras se escribía en la base de datos.
  • Fallos en el disco duro (sectores dañados).
  • Errores al actualizar MySQL o el servidor.
  • Uso excesivo de recursos (por ejemplo, muchos accesos simultáneos).
  • Incompatibilidad de versiones después de una migración.

Los síntomas típicos son:

  • Mensajes como "Error 1194: Table is marked as crashed".
  • Tu sitio web muestra un error de conexión a la base de datos.
  • No puedes acceder a phpMyAdmin o DirectAdmin muestra tablas vacías.

Paso 1: Identificar la tabla dañada

Antes de reparar, debes saber qué tabla o base de datos está fallando. DirectAdmin te da pistas.

Usando phpMyAdmin

  1. Inicia sesión en DirectAdmin con tu usuario y contraseña.
  2. Ve a Administrador de Cuentas > MySQL Management o directamente a phpMyAdmin.
  3. Selecciona la base de datos afectada (la que usa tu sitio web o aplicación).
  4. En la lista de tablas, busca un símbolo de "X" roja o un mensaje como "in use" o "crashed".

[INFO] Si no ves phpMyAdmin en tu DirectAdmin, puedes instalarlo desde el gestor de aplicaciones o pedirle a tu proveedor de hosting que lo active.

Usando la terminal (SSH)

Si tienes acceso SSH (lo recomendamos para usuarios avanzados), puedes ejecutar:

mysqlcheck -u usuario -p --check nombre_base_datos

Te pedirá la contraseña de MySQL. Si ves tablas con el estado "error" o "crashed", esas son las que necesitas reparar.


Paso 2: Reparar tablas MySQL corruptas en DirectAdmin

Ahora vamos a lo práctico. Hay varias formas de hacerlo, desde la más sencilla (guiada) hasta la más técnica.

Opción 1: Reparar desde phpMyAdmin (Recomendada para principiantes)

  1. En phpMyAdmin, selecciona la base de datos afectada.
  2. Marca la(s) tabla(s) dañada(s) con la casilla de verificación.
  3. En el menú desplegable de abajo, elige "Reparar tabla".
  4. phpMyAdmin ejecutará el comando REPAIR TABLE y te mostrará el resultado.

[TIP] Si tienes muchas tablas, puedes seleccionar todas y repararlas en lote. Esto es seguro, pero puede tomar unos segundos.

Opción 2: Reparar desde DirectAdmin (Panel de control)

DirectAdmin incluye una herramienta llamada "MySQL Repair":

  1. Inicia sesión en DirectAdmin como usuario o administrador.
  2. Ve a Administrador de Cuentas > MySQL Management.
  3. Busca la sección "Repair Databases" o "Check/Repair Tables".
  4. Selecciona la base de datos y haz clic en "Repair".
  5. Espera a que termine. El sistema te mostrará un mensaje de éxito o error.

[WARNING] Si la opción no aparece, puede que tu plan de hosting no la incluya. En ese caso, usa phpMyAdmin o la terminal.

Opción 3: Reparar desde la terminal (SSH) - Avanzado

Si te sientes cómodo con comandos, esta es la opción más potente.

Conéctate por SSH a tu servidor y ejecuta:

mysqlcheck -u usuario -p --repair nombre_base_datos

O si quieres reparar todas las bases de datos de una vez:

mysqlcheck -u root -p --repair --all-databases

[INFO] Necesitas los permisos de root de MySQL. Si no recuerdas la contraseña, puedes verla en el archivo /usr/local/directadmin/conf/mysql.conf (solo root del servidor).

Si el comando falla, prueba con una reparación más agresiva:

mysqlcheck -u usuario -p --repair --use-frm nombre_base_datos tabla_dañada

Esto usa el archivo .frm (definición de la tabla) para reconstruirla.


Paso 3: Verificar la reparación

Después de ejecutar la reparación, es importante comprobar que todo esté bien.

  1. Vuelve a phpMyAdmin o ejecuta mysqlcheck --check para verificar.
  2. Si el estado es "OK", la tabla está reparada.
  3. Prueba tu sitio web o aplicación para confirmar que funciona.

[WARNING] Si la reparación falla o la tabla sigue mostrando error, es posible que los datos estén irreparablemente dañados. En ese caso, necesitarás una copia de seguridad.


Paso 4: Recuperar datos de una tabla irrecuperable

Si la reparación no funciona, aún puedes intentar salvar la información.

Opción A: Usar mysqldump para exportar lo que se pueda

mysqldump -u usuario -p --force nombre_base_datos > respaldo.sql

El parámetro --force ignora los errores y exporta las tablas que sí funcionan.

Opción B: Restaurar desde una copia de seguridad

Si tienes una copia de seguridad reciente (¡deberías!), restaura la base de datos desde el panel de DirectAdmin o desde phpMyAdmin.

  1. Ve a Administrador de Cuentas > MySQL Management > Importar base de datos.
  2. Sube el archivo .sql de la copia.
  3. Reemplaza la base de datos dañada.

[TIP] Siempre programa copias de seguridad automáticas. DirectAdmin permite hacerlas desde Copia de seguridad > Crear copia.


Paso 5: Prevenir futuras corrupciones

Una vez que todo esté funcionando, toma estas medidas para evitar que vuelva a pasar:

  • Usa un sistema de archivos robusto: Si tu servidor usa ext4 o XFS, es menos propenso a errores que ext3.
  • Configura MySQL para que revise tablas automáticamente: En el archivo my.cnf (generalmente en /etc/my.cnf), añade:
    [mysqld]
    innodb_force_recovery = 0
    myisam_recover_options = BACKUP,FORCE
    
    Esto hace que MySQL intente reparar tablas MyISAM al arrancar.
  • Mantén MySQL actualizado: Las versiones nuevas corrigen bugs de corrupción.
  • Evita apagones: Usa un SAI (UPS) en tu servidor.
  • Monitorea el disco duro: Con herramientas como smartctl (para SSD/HDD).

[INFO] Si tu servidor usa Syspanel (antes HestiaCP), el proceso es similar. Accede al panel por el puerto 2106 (ejemplo: https://tudominio.com:2106) y busca la sección de bases de datos. Allí también encontrarás opciones de reparación.


Preguntas frecuentes (FAQ)

¿Puedo reparar tablas mientras el sitio web está en línea?

Sí, pero es recomendable poner el sitio en modo mantenimiento para evitar escrituras simultáneas. DirectAdmin tiene una opción para activar el modo mantenimiento en Administrador de Cuentas > Configuración del dominio.

¿Qué hago si la reparación da error "Table doesn't exist"?

Esto suele indicar que el archivo .frm (definición) está dañado. Prueba a restaurar solo ese archivo desde una copia de seguridad.

¿Cuánto tiempo tarda la reparación?

Depende del tamaño de la tabla. Tablas pequeñas (menos de 1 GB) se reparan en segundos. Tablas grandes (10 GB o más) pueden tardar minutos.

¿Pierdo datos al reparar?

No, la reparación intenta recuperar la mayor cantidad de datos posible. Sin embargo, si la tabla está muy dañada, algunos registros pueden perderse. Por eso es vital tener copias de seguridad.

¿Y si uso InnoDB en lugar de MyISAM?

Las tablas InnoDB son más robustas, pero también pueden corromperse. En ese caso, el comando es el mismo (REPAIR TABLE), pero a veces necesitas forzar la recuperación con innodb_force_recovery en my.cnf.


Conclusión

Reparar tablas MySQL corruptas en DirectAdmin no tiene por qué ser un dolor de cabeza. Con las herramientas que te he mostrado (phpMyAdmin, el panel de DirectAdmin o la terminal), puedes resolverlo en pocos minutos. Recuerda siempre verificar el resultado y, sobre todo, prevenir con copias de seguridad periódicas.

Si después de seguir estos pasos el problema persiste, contacta con tu proveedor de hosting. A veces la corrupción es señal de un fallo físico en el disco o de una configuración incorrecta del servidor.

Espero que esta guía te haya sido útil. Si tienes dudas, déjalas en los comentarios (si este artículo está en un blog) o consulta con tu soporte técnico. ¡Buena suerte!

¿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