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

Reparar base de datos MySQL dañada en DirectAdmin

Actualizado el 19 de abril de 2026

¿Tu web dejó de funcionar y ves errores extraños como "Table is marked as crashed" o "Can't connect to MySQL server"? No entres en pánico. En este artículo te explicamos paso a paso cómo reparar base de datos MySQL dañada en DirectAdmin, una tarea común cuando el servidor se apaga de golpe, hay cortes de luz o se llena el disco. Vamos a resolverlo juntos, sin necesidad de ser un experto en bases de datos.

¿Por qué se dañan las tablas MySQL?

Antes de meternos en faena, es útil entender por qué ocurre esto. Las bases de datos MySQL guardan la información en archivos llamados tablas (normalmente con extensión .ibd o .MYD). Si algo interrumpe la escritura en esos archivos —como un apagón, un cierre forzado del servidor, o un error de disco— la tabla puede quedar en un estado inconsistente. Esto se conoce como corrupción.

Los síntomas más comunes son:

  • Mensajes en tu web como "Error establishing a database connection".
  • En el panel de DirectAdmin, al abrir phpMyAdmin, ves tablas con un icono rojo o un aviso de "crashed".
  • En los logs de error del servidor aparecen líneas como "Table '.tu_tabla' is marked as crashed".

[WARNING] No ignores estos errores. Una tabla dañada puede empeorar con el tiempo y causar pérdida de datos si no se repara a tiempo.

Preparación: Acceso a DirectAdmin y herramientas necesarias

Para reparar base de datos dañada, necesitarás acceso a DirectAdmin como usuario (o como administrador si tienes varios sitios). Aquí tienes lo que debes tener a mano:

  • Usuario y contraseña de DirectAdmin (el mismo que usas para gestionar tu hosting).
  • Acceso a phpMyAdmin (dentro de DirectAdmin, en la sección "MySQL Management").
  • Acceso SSH (opcional, pero recomendado si la reparación desde phpMyAdmin falla). Si no sabes qué es SSH, no te preocupes: la mayoría de pasos se pueden hacer desde el panel.

[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es similar, pero accedes por el puerto 2106. En ese caso, busca la sección "Bases de Datos" y luego "phpMyAdmin".

Paso 1: Identificar las tablas dañadas desde DirectAdmin

Lo primero es saber qué tablas están rotas. Sigue estos pasos:

  1. Inicia sesión en DirectAdmin con tu usuario.
  2. Ve a "MySQL Management" o "Administración de MySQL".
  3. Haz clic en "phpMyAdmin" (se abrirá una nueva pestaña).
  4. En phpMyAdmin, selecciona la base de datos que tiene problemas (la lista está a la izquierda).
  5. Verás una lista de tablas. Las dañadas suelen tener un icono rojo o un mensaje como "in use" o "crashed". También puedes ejecutar una comprobación manual:
    • Marca todas las tablas (clic en "Seleccionar todo").
    • En el menú desplegable de abajo (donde dice "Con seleccionados:"), elige "Comprobar tabla" (o "Check table").
    • phpMyAdmin te mostrará el resultado. Si ves "OK", la tabla está bien. Si ves "Error" o "Table is marked as crashed", necesitas repararla.

Paso 2: Reparar desde phpMyAdmin (método más fácil)

Si solo tienes una o dos tablas dañadas, este es el método más rápido y no requiere conocimientos técnicos.

  1. En phpMyAdmin, selecciona la tabla dañada (haz clic en su nombre).
  2. Ve a la pestaña "Operaciones" (en la parte superior).
  3. Busca la sección "Mantenimiento de tablas".
  4. Haz clic en "Reparar tabla" (o "Repair table").
  5. Espera unos segundos. phpMyAdmin ejecutará el comando REPAIR TABLE de MySQL.
  6. Verás un mensaje de éxito o error. Si es exitoso, la tabla vuelve a la normalidad.

[TIP] Si tienes muchas tablas dañadas, puedes seleccionarlas todas (marcando las casillas) y en el menú desplegable elegir "Reparar tabla". Esto las repara en lote.

Paso 3: Reparar desde la línea de comandos (SSH)

Si phpMyAdmin no puede reparar la tabla (por ejemplo, si el error es más grave), necesitas usar la terminal. No te asustes: los comandos son sencillos.

Requisitos para SSH

  • Necesitas un cliente SSH (como PuTTY en Windows o Terminal en Mac/Linux).
  • Tus credenciales SSH te las proporciona tu proveedor de hosting (usuario y contraseña, o clave privada).
  • Si no tienes acceso SSH, contacta con el soporte técnico de tu hosting.

Pasos para reparar con comandos

  1. Conéctate por SSH a tu servidor. El comando típico es:

    ssh usuario@tu-servidor.com
    
  2. Una vez dentro, accede a MySQL con el usuario root o un usuario con permisos. Escribe:

    mysql -u root -p
    

    Te pedirá la contraseña de root de MySQL (no la de DirectAdmin). Si no la sabes, puedes obtenerla desde DirectAdmin: ve a "MySQL Management" y busca "Contraseña de root" (en algunos paneles aparece).

  3. Dentro del prompt de MySQL (verás mysql>), selecciona la base de datos afectada:

    USE nombre_de_tu_base_de_datos;
    

    (Reemplaza "nombre_de_tu_base_de_datos" por el nombre real).

  4. Ahora, repara la tabla específica:

    REPAIR TABLE nombre_de_la_tabla;
    

    Si quieres reparar todas las tablas de esa base de datos, puedes usar:

    REPAIR TABLES;
    

    (Esto reparará todas las tablas de la base de datos actual).

  5. Verás un mensaje como: +----------------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------------------------+--------+----------+----------+ | tu_db.tu_tabla | repair | status | OK | +----------------------------+--------+----------+----------+
    Si dice "OK", ¡reparada! Si dice "Error", pasa al siguiente paso.

  6. Si el comando REPAIR falla, puedes intentar una reparación más forzada con mysqlcheck (sin entrar a MySQL). Desde la terminal (fuera de MySQL), escribe:

    mysqlcheck -u root -p --auto-repair --databases nombre_de_tu_base_de_datos
    

    Esto intenta reparar todas las tablas de esa base de datos automáticamente.

[WARNING] Si la reparación falla repetidamente, la tabla podría estar muy dañada. En ese caso, el siguiente paso es intentar recuperar los datos con mysqldump (si aún se puede leer parte de la tabla) o restaurar desde una copia de seguridad.

Paso 4: Recuperar datos de una tabla irrecuperable

Si la tabla está tan dañada que no se repara, aún puedes intentar extraer la información que quede. Esto se hace con mysqldump:

  1. Desde SSH, crea un volcado de la base de datos ignorando errores:

    mysqldump -u root -p --force --skip-lock-tables nombre_de_tu_base_de_datos > respaldo.sql
    

    El parámetro --force hace que continúe aunque encuentre errores.

  2. Luego, borra la tabla dañada (desde phpMyAdmin o con DROP TABLE nombre_tabla;) y vuelve a crearla desde el respaldo:

    mysql -u root -p nombre_de_tu_base_de_datos < respaldo.sql
    

    Esto puede restaurar la mayoría de los datos, aunque quizás pierdas algunas filas.

[INFO] Siempre ten copias de seguridad automáticas. En DirectAdmin puedes configurarlas en "Admin Backup/Transfer" si eres administrador, o pedir a tu hosting que las active.

Paso 5: Prevenir futuras corrupciones

Una vez reparada la base de datos, es mejor prevenir que curar. Aquí tienes buenas prácticas:

  • Activar copias de seguridad automáticas: En DirectAdmin, ve a "Cron Jobs" y programa un volcado diario de tus bases de datos con mysqldump.
  • Revisar el estado del disco: Si el disco está lleno, MySQL puede corromperse. Pide a tu hosting que verifique el espacio.
  • Usar motores de almacenamiento robustos: InnoDB es más tolerante a caídas que MyISAM. Si tus tablas usan MyISAM, considera migrarlas a InnoDB (consulta con soporte técnico).
  • Apagar el servidor correctamente: Si tienes acceso root, nunca apagues el servidor con kill -9 o cortando la corriente. Usa siempre shutdown -h now.

FAQ: Preguntas frecuentes sobre reparación de MySQL en DirectAdmin

¿Puedo reparar una base de datos sin perder datos?

Sí, el comando REPAIR TABLE intenta reconstruir la estructura sin borrar filas. Sin embargo, si la corrupción es grave, podrías perder algunos registros. Por eso es vital tener backups.

¿Qué hago si no tengo acceso SSH?

Si solo tienes DirectAdmin, usa phpMyAdmin como en el Paso 2. Si eso no funciona, contacta a tu proveedor de hosting y pídeles que ejecuten mysqlcheck o REPAIR TABLE por ti.

¿Por qué mi tabla se daña cada semana?

Esto suele indicar un problema de hardware (disco defectuoso) o de configuración de MySQL (por ejemplo, un innodb_buffer_pool_size muy bajo). Pide a tu hosting que revise los logs del sistema.

¿Syspanel (HestiaCP) tiene la misma herramienta?

Sí, en Syspanel (puerto 2106) el proceso es idéntico: entras a "Bases de Datos", haces clic en "phpMyAdmin" y reparas desde allí. Los comandos SSH también funcionan igual.

¿Reparar una tabla afecta el rendimiento del sitio?

Durante la reparación, la tabla se bloquea (no se puede leer ni escribir). Si tu sitio tiene tráfico, es mejor hacerlo en horas bajas. En DirectAdmin, puedes ver el uso de recursos en "Process Manager".

Conclusión: Recupera tu web sin estrés

Reparar una base de datos MySQL dañada en DirectAdmin no es un proceso de otro mundo. Con phpMyAdmin o unos pocos comandos SSH, puedes tener tu web operativa en minutos. Recuerda: la prevención es clave. Programa backups semanales y monitorea el estado de tu servidor.

Si después de seguir esta guía sigues teniendo problemas, no dudes en contactar al soporte técnico de tu hosting. Diles que ya intentaste reparar desde DirectAdmin y phpMyAdmin, y que necesitas ayuda con la línea de comandos o una restauración desde backup.

[TIP] Guarda esta guía en tus favoritos. La próxima vez que veas un error de "crashed table", sabrás exactamente qué hacer. ¡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