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

DirectAdmin: reparar base de datos MySQL dañada

Actualizado el 17 de septiembre de 2025

¿Tu sitio web está mostrando errores de conexión a la base de datos o ves mensajes como "Error al conectar con la base de datos" o "Table is marked as crashed"? Es probable que tengas una base de datos MySQL dañada. No te preocupes, es un problema más común de lo que crees y, en la mayoría de los casos, tiene solución.

En este artículo, te guiaré paso a paso para reparar una base de datos MySQL dañada desde DirectAdmin. Vamos a usar herramientas seguras que vienen incluidas en el panel. No necesitas ser un experto, solo seguir las instrucciones con calma.


¿Por qué se daña una base de datos MySQL?

Antes de solucionarlo, es útil saber por qué ocurre. Las causas más frecuentes son:

  • Cortes de energía o apagados bruscos del servidor. Si el servidor se apaga mientras MySQL está escribiendo datos, los archivos pueden quedar inconsistentes.
  • Errores en el disco duro. Sectores defectuosos pueden corromper archivos de la base de datos.
  • Scripts o plugins mal optimizados. Un plugin de WordPress o un script personalizado que no cierra bien las conexiones puede forzar la tabla.
  • Espacio en disco insuficiente. Si el disco se llena, MySQL puede no terminar de escribir correctamente.
  • Errores humanos. Por ejemplo, forzar la detención de un proceso de MySQL.

Los síntomas típicos son: páginas en blanco, errores 500, mensajes como "Table 'wp_options' is marked as crashed" o que tu panel de administración (como el de WordPress) no cargue.


Requisitos previos

Antes de empezar, asegúrate de tener:

  1. Acceso a DirectAdmin. Necesitas credenciales de administrador o de un usuario con permisos para gestionar bases de datos.
  2. Copia de seguridad reciente. Siempre, siempre, siempre haz una copia de seguridad de la base de datos dañada antes de intentar repararla. La reparación suele ser segura, pero mejor prevenir.
  3. Conocimiento del nombre de la base de datos y del usuario. Lo puedes encontrar en DirectAdmin, en la sección "MySQL Management".

[WARNING] Si no tienes copia de seguridad, haz una ahora. Ve a "MySQL Management" y exporta la base de datos dañada como archivo SQL. Guárdala en tu computadora.


Método 1: Reparar desde DirectAdmin (la forma más fácil)

DirectAdmin incluye una herramienta gráfica para reparar bases de datos. Es el método recomendado para usuarios sin experiencia en línea de comandos.

Paso 1: Accede a MySQL Management

  1. Inicia sesión en tu panel de DirectAdmin.
  2. Busca y haz clic en "MySQL Management" (o "Gestión de MySQL").
  3. Verás una lista de todas tus bases de datos.

Paso 2: Selecciona la base de datos dañada

  1. Localiza la base de datos que presenta problemas. Normalmente se llama algo como usuario_nombrebasededatos.
  2. Haz clic en el nombre de la base de datos o en el icono de engranaje (dependiendo de la versión de DirectAdmin).

Paso 3: Ejecuta la reparación

  1. Dentro de la base de datos, busca un botón o enlace que diga "Repair" (Reparar). Puede estar en la parte superior derecha o en un menú desplegable.
  2. Haz clic en "Repair". DirectAdmin ejecutará automáticamente el comando REPAIR TABLE en todas las tablas de esa base de datos.
  3. Espera unos segundos. Verás un mensaje como "Tablas reparadas correctamente" o "Repair completed".

Paso 4: Verifica el estado

  1. Vuelve a tu sitio web y comprueba si funciona. Si el error persiste, prueba con el Método 2.

[TIP] Si no ves la opción "Repair", puede que tu versión de DirectAdmin no la incluya. En ese caso, usa el Método 2 (phpMyAdmin) o el Método 3 (línea de comandos).


Método 2: Reparar con phpMyAdmin (desde DirectAdmin)

phpMyAdmin es una herramienta web para gestionar MySQL. DirectAdmin suele incluirla.

Paso 1: Accede a phpMyAdmin

  1. En DirectAdmin, busca "phpMyAdmin" o "Base de datos avanzada". Normalmente está en la sección "Extra Features" o "Account Manager".
  2. Haz clic para abrirlo. Se abrirá una nueva pestaña con la interfaz de phpMyAdmin.

Paso 2: Selecciona la base de datos

  1. En el panel izquierdo, verás una lista de bases de datos. Haz clic en la que está dañada.
  2. Aparecerán todas las tablas de esa base de datos.

Paso 3: Repara las tablas

  1. Marca la casilla de verificación en la parte superior de la lista para seleccionar todas las tablas.
  2. En el menú desplegable (justo debajo de la lista de tablas), selecciona "Repair table" (Reparar tabla).
  3. Haz clic en "Continuar" o "Ejecutar".
  4. phpMyAdmin mostrará un mensaje con el resultado: "OK" para tablas reparadas, o "error" si alguna no se pudo reparar.

Paso 4: Verifica

  1. Si alguna tabla no se reparó, anota su nombre. En el siguiente método podremos intentar una reparación más profunda.

[INFO] Si phpMyAdmin no carga o da error, puede que el servidor tenga problemas de configuración. Prueba el Método 3.


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

Este método es más potente y funciona incluso si las herramientas gráficas fallan. Necesitas acceso SSH al servidor.

Paso 1: Conéctate por SSH

  1. Abre un terminal (en Windows puedes usar PuTTY, en Mac/Linux la terminal nativa).
  2. Conéctate a tu servidor con el usuario root o un usuario con permisos sudo:
    ssh usuario@tudominio.com
    
  3. Ingresa tu contraseña.

Paso 2: Identifica la base de datos

  1. Una vez dentro, escribe:
    mysql -u root -p
    
    Te pedirá la contraseña de root de MySQL (la tienes en DirectAdmin, en "MySQL Management" > "Root password").
  2. Dentro de MySQL, lista las bases de datos:
    SHOW DATABASES;
    
    Localiza la dañada (por ejemplo, usuariowp_bd).

Paso 3: Repara todas las tablas

  1. Sal de MySQL (escribe exit).
  2. Ahora usa el comando mysqlcheck para reparar:
    mysqlcheck -u root -p --auto-repair --databases nombrebasededatos
    
    Sustituye nombrebasededatos por el nombre real.
  3. Ingresa la contraseña de root de MySQL cuando te la pida.
  4. Verás una salida similar a:
    nombrebasededatos.tabla1 OK
    nombrebasededatos.tabla2 warning  : Table is marked as crashed
    nombrebasededatos.tabla2 repair : 1 row affected
    
    Las tablas con "OK" están bien, las que tenían "warning" se repararon.

Paso 4: Reparación forzada (si falla)

  1. Si alguna tabla no se reparó, puedes forzar la reparación:
    mysqlcheck -u root -p --repair --use-frm nombrebasededatos
    
    Esta opción usa el archivo .frm (definición de la tabla) como referencia. Es un poco más agresiva.

[WARNING] Si después de esto la tabla sigue dañada, puede que el archivo de datos esté corrupto de forma irreversible. En ese caso, restaura desde tu copia de seguridad.


Método 4: Reparar desde Syspanel (antes HestiaCP)

Si tu servidor usa Syspanel (el panel que antes se llamaba HestiaCP), el proceso es similar pero con algunas diferencias. Recuerda que el puerto de acceso a Syspanel es el 2106.

Paso 1: Accede a Syspanel

  1. Abre tu navegador y ve a https://tudominio.com:2106.
  2. Inicia sesión con tus credenciales de administrador.

Paso 2: Ve a la sección de bases de datos

  1. Busca "Bases de datos" o "Databases" en el menú lateral.
  2. Haz clic en la base de datos dañada.

Paso 3: Usa la herramienta de reparación

  1. Dentro de la base de datos, busca un botón que diga "Repair" o "Check & Repair".
  2. Haz clic y espera. Syspanel ejecutará el comando de reparación.

Paso 4: Alternativa con phpMyAdmin

  1. Syspanel también incluye phpMyAdmin. Puedes acceder desde el mismo panel (suele estar en "Herramientas" o "Advanced").
  2. Una vez en phpMyAdmin, sigue los pasos del Método 2.

[TIP] Si no encuentras la opción de reparación en Syspanel, usa la línea de comandos (Método 3) desde SSH. Syspanel no bloquea el acceso SSH.


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

A veces, la reparación no es suficiente. Aquí tienes algunas alternativas:

  • Restaurar desde una copia de seguridad. Es la solución más segura. En DirectAdmin, ve a "MySQL Management", selecciona la base de datos y usa "Import" para subir tu archivo SQL de respaldo.
  • Crear una nueva base de datos y migrar los datos. Si la base de datos está muy dañada, puedes crear una nueva en DirectAdmin y luego importar los datos desde una copia de seguridad parcial.
  • Contactar al soporte técnico de tu hosting. Si todo falla, ellos tienen herramientas más avanzadas (como myisamchk o innodb_force_recovery) que pueden recuperar datos incluso en casos extremos.

[INFO] Las bases de datos InnoDB son más robustas que MyISAM, pero también pueden dañarse. Si usas InnoDB, la reparación desde línea de comandos con mysqlcheck suele funcionar bien.


Prevención: cómo evitar futuros daños

Una vez que hayas reparado tu base de datos, toma estas medidas para evitar que vuelva a ocurrir:

  • Realiza copias de seguridad periódicas. DirectAdmin permite programar backups automáticos.
  • Monitorea el espacio en disco. Si se llena, MySQL puede fallar. Usa herramientas como df -h en SSH.
  • Actualiza tus scripts y plugins. Las versiones antiguas pueden tener errores que corrompan tablas.
  • Usa un sistema de archivos robusto. Si tienes acceso al servidor, considera usar ext4 o XFS, que manejan mejor las caídas.
  • Configura MySQL para que sea más tolerante a fallos. Por ejemplo, habilita innodb_flush_log_at_trx_commit = 2 (con cuidado, puede perder datos en un crash).

FAQ: Preguntas frecuentes

¿Puedo reparar una base de datos MySQL sin acceso a DirectAdmin?

Sí, si tienes acceso SSH, puedes usar los comandos del Método 3. Si no, contacta a tu proveedor de hosting.

¿La reparación borra datos?

No, la reparación solo intenta corregir inconsistencias en los archivos de la tabla. No elimina filas a menos que estén tan corruptas que no se puedan leer. En ese caso, se pierde solo esa fila.

¿Cuánto tiempo tarda la reparación?

Depende del tamaño de la base de datos. Una base de datos pequeña (menos de 100 MB) se repara en segundos. Una de varios GB puede tardar minutos.

¿Qué significa "Table is marked as crashed"?

Es el mensaje típico de MySQL cuando detecta que una tabla está dañada. Significa que los archivos de la tabla (.frm, .MYD, .MYI en MyISAM) tienen errores.

¿Debo reparar todas las tablas o solo las dañadas?

Puedes reparar todas, no causa problemas. Pero si quieres ser más preciso, primero verifica el estado con:

mysqlcheck -u root -p --check nombrebasededatos

¿Syspanel (HestiaCP) tiene alguna herramienta especial para reparar?

Sí, en la interfaz de bases de datos de Syspanel suele haber un botón "Check & Repair". Si no, usa phpMyAdmin o SSH.


Conclusión

Reparar una base de datos MySQL dañada desde DirectAdmin es un proceso sencillo si sigues los pasos correctos. Empieza siempre por el método gráfico (DirectAdmin o phpMyAdmin) y si falla, recurre a la línea de comandos. Recuerda: la copia de seguridad es tu mejor amiga.

Si después de intentarlo todo el problema persiste, no dudes en contactar al soporte técnico de tu hosting. Ellos tienen herramientas de recuperación avanzadas y pueden ayudarte a recuperar tus datos.

Espero que este artículo te haya sido de ayuda. ¡Buena suerte con tu reparación!

¿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