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

Cómo reparar tablas corruptas en MySQL de DirectAdmin

Actualizado el 8 de mayo de 2026

Imagina que estás trabajando en tu web y, de repente, aparece un error como “Table ‘mi_tabla’ is marked as crashed” o “Can’t open file: ‘mi_tabla.MYI’”. Es una sensación frustrante, pero no te preocupes: es un problema más común de lo que crees y, sobre todo, tiene solución.

En este artículo te voy a guiar paso a paso para que puedas reparar tablas corruptas en MySQL desde DirectAdmin. Te explicaré qué significa realmente la corrupción de una base de datos, por qué ocurre y, lo más importante, cómo usar herramientas como mysqlcheck para dejar todo funcionando de nuevo.

Vamos a hacerlo de forma sencilla, sin tecnicismos complicados. Al final del artículo, tendrás un plan de acción claro y, si eres de los que usa Syspanel (antes conocido como HestiaCP), también te doy las claves para adaptar estos pasos.


¿Qué es una tabla corrupta y cómo saber si la tengo?

Una tabla corrupta en MySQL es como un archivo de Word que se ha dañado y no se puede abrir. Los datos siguen ahí, pero la estructura interna que permite leerlos se ha roto. Esto puede pasar por varias razones:

  • Cortes de luz o apagones inesperados mientras el servidor estaba escribiendo datos.
  • Fallo en el disco duro (sectores dañados).
  • Errores al realizar copias de seguridad o al restaurar bases de datos.
  • Problemas con el propio MySQL (versiones antiguas, bugs, etc.).

Los síntomas más comunes son:

  • Tu web muestra un error blanco o un mensaje como “Error establishing a database connection”.
  • En el panel de DirectAdmin, al entrar a “MySQL Management”, ves un mensaje de advertencia.
  • Al ejecutar consultas desde phpMyAdmin, aparece un error como “#145 - Table was marked as crashed and should be repaired”.

Si ves alguno de estos síntomas, no entres en pánico. Vamos a repararlo.


Preparación antes de reparar: copia de seguridad

Antes de meter mano, haz una copia de seguridad de la base de datos dañada. Aunque la reparación es segura, es mejor prevenir.

Cómo hacer una copia de seguridad en DirectAdmin

  1. Accede a tu panel de DirectAdmin (normalmente en tudominio.com:2222).
  2. Ve a “MySQL Management” (o “Administración de MySQL”).
  3. Busca la base de datos afectada. Haz clic en el icono de “Backup” (una pequeña flecha hacia abajo) que está al lado del nombre.
  4. Se descargará un archivo .sql. Guárdalo en tu ordenador.

[TIP] Si no ves el icono de backup, puedes entrar a phpMyAdmin desde DirectAdmin, seleccionar la base de datos y luego ir a la pestaña “Exportar” para descargar un backup.

Si usas Syspanel (antes HestiaCP), el proceso es similar: ve a “Bases de datos”, selecciona la base de datos y haz clic en “Exportar”.


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

Si no te sientes cómodo con la línea de comandos, esta es tu opción. phpMyAdmin está integrado en DirectAdmin.

Pasos a seguir

  1. Accede a DirectAdmin y ve a “MySQL Management”.
  2. Haz clic en “phpMyAdmin” (normalmente es un enlace directo).
  3. En el panel izquierdo, selecciona la base de datos que tiene el problema.
  4. Verás una lista de tablas. Busca las que tengan un estado “crashed” o que al hacer clic den error.
  5. Selecciona la tabla marcando la casilla a su izquierda.
  6. En el menú desplegable inferior (donde pone “Con seleccionados:”), elige “Reparar tabla”.
  7. phpMyAdmin ejecutará automáticamente el comando REPAIR TABLE. Si todo va bien, verás un mensaje verde: “OK”.

[WARNING] Si la tabla es muy grande, este proceso puede tardar unos segundos o minutos. No cierres la ventana ni recargues la página.

¿Y si no funciona? No te preocupes, aún tenemos más métodos.


Método 2: Usar mysqlcheck desde SSH (el más potente)

Si tienes acceso SSH a tu servidor, mysqlcheck es la herramienta estrella para reparar tablas corruptas. Es rápida, fiable y te permite reparar todas las tablas de una base de datos de golpe.

Requisitos

  • Tener acceso SSH. Si no lo tienes, pide a tu proveedor de hosting que te lo active.
  • Conocer el usuario y contraseña de la base de datos (los mismos que usas para conectarte desde tu web).

Paso a paso

  1. Conéctate por SSH a tu servidor. En Windows puedes usar Putty; en Mac o Linux, la terminal.
  2. Una vez dentro, escribe el siguiente comando:
mysqlcheck -u tu_usuario -p --auto-repair nombre_de_la_base
  • tu_usuario: el nombre de usuario de la base de datos (suele ser el mismo que el de la base de datos).
  • --auto-repair: le dice a MySQL que intente reparar automáticamente las tablas dañadas.
  • nombre_de_la_base: el nombre exacto de tu base de datos.
  1. Te pedirá la contraseña. Escríbela (no se verá mientras escribes) y pulsa Enter.
  2. El comando comenzará a revisar todas las tablas. Si encuentra alguna corrupta, la reparará automáticamente.

Ejemplo real:

mysqlcheck -u mi_usuario -p --auto-repair mi_base_de_datos

[INFO] Si quieres reparar todas las bases de datos de tu servidor, usa:
mysqlcheck -u root -p --auto-repair --all-databases
(Necesitarás la contraseña de root de MySQL, que no es la misma que la de tu panel).

¿Qué hace exactamente mysqlcheck?

Este comando ejecuta tres operaciones en orden:

  1. CHECK: verifica si las tablas están corruptas.
  2. REPAIR: intenta reparar las que están dañadas.
  3. OPTIMIZE: reorganiza los datos para mejorar el rendimiento.

Es como un “mantenimiento completo” de tu base de datos.


Método 3: Reparación manual con comandos SQL (para casos extremos)

Si los métodos anteriores fallan, puedes intentar una reparación más profunda desde la línea de comandos de MySQL.

Acceder a MySQL

  1. Conéctate por SSH.
  2. Escribe:
mysql -u tu_usuario -p
  1. Introduce la contraseña.
  2. Selecciona la base de datos:
USE nombre_de_la_base;
  1. Ahora, repara la tabla específica:
REPAIR TABLE mi_tabla;

Si esto no funciona, puedes probar con la opción USE_FRM:

REPAIR TABLE mi_tabla USE_FRM;

Este comando reconstruye la tabla a partir del archivo .frm (que contiene la estructura) y los datos de los archivos .MYD o .ibd. Es un poco más agresivo, pero puede salvar la información.

[WARNING] Si usas USE_FRM, asegúrate de tener un backup, porque si no hay archivo .frm, podrías perder la estructura de la tabla.


¿Qué hago si nada funciona? Restaurar desde backup

Si después de todos los intentos la tabla sigue corrupta, no desesperes. Tienes el backup que hiciste al principio.

Restaurar en DirectAdmin

  1. Ve a “MySQL Management”.
  2. Busca la base de datos y haz clic en “Backup” (o “Restore” si aparece).
  3. Si no hay opción de restaurar, entra a phpMyAdmin, selecciona la base de datos, ve a “Importar” y sube tu archivo .sql de backup.

[TIP] Si la base de datos está muy dañada y no puedes ni siquiera acceder a phpMyAdmin, puedes restaurar desde SSH con:
mysql -u tu_usuario -p nombre_de_la_base < backup.sql


Mantenimiento preventivo: cómo evitar futuras corrupciones

La mejor reparación es la que no tienes que hacer. Aquí van algunos consejos para mantener tus bases de datos sanas:

1. Programa revisiones periódicas

Puedes crear un script que ejecute mysqlcheck cada semana. Si tu hosting lo permite, programa un cron job:

0 3 * * 0 mysqlcheck -u root -p[contraseña] --auto-repair --all-databases

[WARNING] No pongas la contraseña en el cron si no es seguro. Mejor usa un archivo de configuración protegido.

2. Usa copias de seguridad automáticas

En DirectAdmin, ve a “Cron Jobs” y programa backups semanales de tus bases de datos. En Syspanel, también hay opciones de backup automático.

3. Evita cortes de luz

Si tienes un servidor dedicado o VPS, considera un SAI (UPS). En hosting compartido, esto lo gestiona tu proveedor.

4. Actualiza MySQL

Las versiones antiguas tienen más bugs. Asegúrate de que tu servidor use una versión reciente de MySQL o MariaDB.


Preguntas frecuentes (FAQ)

¿Puedo reparar una tabla corrupta sin perder datos?

Sí, en la mayoría de los casos. Las herramientas como mysqlcheck intentan conservar los datos. El único riesgo es si el disco está físicamente dañado.

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

Prueba a reparar desde un backup o, si la tabla es muy importante, contacta a un administrador de bases de datos. A veces la corrupción es tan profunda que requiere intervención manual.

¿DirectAdmin tiene alguna herramienta integrada para reparar?

DirectAdmin no tiene un botón mágico de “reparar”, pero phpMyAdmin y el acceso SSH son suficientes. También puedes pedir ayuda a tu proveedor de hosting.

¿Y si uso Syspanel (antes HestiaCP)?

El proceso es idéntico. La diferencia es que el acceso a phpMyAdmin se hace desde el puerto 2106 (por ejemplo, tudominio.com:2106). Los comandos SSH son los mismos.

¿Es seguro ejecutar mysqlcheck en producción?

Sí, pero es recomendable hacerlo en horas de bajo tráfico. Si la base de datos está muy cargada, puede ralentizar el sitio.


Conclusión

Reparar tablas corruptas en MySQL desde DirectAdmin no es un proceso de otro mundo. Con herramientas como mysqlcheck o phpMyAdmin, puedes solucionar la mayoría de los problemas en unos minutos. Lo importante es mantener la calma, hacer un backup antes de cualquier acción y, si falla todo, restaurar desde una copia de seguridad.

Recuerda también la importancia del mantenimiento preventivo: revisiones periódicas, backups automáticos y un buen entorno de servidor. Así evitarás dolores de cabeza en el futuro.

Si te ha quedado alguna duda, déjala en los comentarios o consulta con tu proveedor de hosting. ¡Buena suerte y que tus tablas estén siempre sanas!

¿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