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

Cómo recuperar una base de datos caída en DirectAdmin (Reparación de tablas)

Actualizado el 14 de diciembre de 2025

¿Por qué se cae una base de datos en DirectAdmin?

Si estás leyendo esto, probablemente te has encontrado con un mensaje de error como "Error establishing a database connection", un "500 Internal Server Error" o una página en blanco en tu sitio web. No te preocupes, es un problema más común de lo que parece y, en la mayoría de los casos, tiene solución sin necesidad de ser un experto.

Una base de datos en MySQL o MariaDB puede "caerse" o corromperse por varias razones. Las más habituales son:

  • Cortes de energía repentinos que interrumpen las escrituras en el disco.
  • Reinicios forzados del servidor (por ejemplo, por mantenimiento o saturación).
  • Espacio en disco insuficiente, lo que impide que MySQL escriba correctamente.
  • Errores en el software o en la versión de MySQL/MariaDB.
  • Consultas mal optimizadas que bloquean tablas durante mucho tiempo.
  • Problemas con el hardware (discos con sectores defectuosos).

Cuando esto ocurre, las tablas de tu base de datos pueden quedar marcadas como "corruptas" o "dañadas". La buena noticia es que DirectAdmin incluye herramientas de línea de comandos y también opciones gráficas para intentar repararlas.

En esta guía, te explicaré paso a paso cómo recuperar una base de datos caída en DirectAdmin, usando tanto el panel de control como la terminal, con comandos como mysqlcheck. No necesitas ser un gurú de la programación, solo seguir las instrucciones con calma.


Antes de empezar: identifica el problema

El primer paso es confirmar que el problema es de la base de datos y no de otra cosa (como un error de PHP o un plugin conflictivo). Los síntomas típicos de una tabla corrupta son:

  • Tu web carga pero muestra errores de conexión a la base de datos.
  • El panel de administración (como WordPress) te pide credenciales de nuevo.
  • Aparecen mensajes como "Table 'nombre_tabla' is marked as crashed and should be repaired".
  • En el log de errores de MySQL (generalmente en /var/log/mysql/error.log) verás líneas con [ERROR] y el nombre de la tabla afectada.

Si tienes acceso a phpMyAdmin desde DirectAdmin, puedes comprobar el estado de las tablas. Ve a tu panel, busca el icono de MySQL Management o phpMyAdmin y selecciona tu base de datos. Si alguna tabla está dañada, verás un aviso o el estado "crashed".

[INFO] Si no puedes acceder ni siquiera a phpMyAdmin, no pasa nada. La reparación se puede hacer perfectamente por línea de comandos, como verás a continuación.


Método 1: Reparar desde phpMyAdmin (la opción más visual)

Este método es ideal si tu base de datos no está completamente caída y puedes entrar al panel.

Paso 1: Accede a phpMyAdmin

  1. Entra a tu panel de DirectAdmin con tu usuario y contraseña.
  2. Busca la sección "MySQL Management" o directamente el icono de phpMyAdmin.
  3. Haz clic y te llevará a la interfaz de phpMyAdmin, donde verás la lista de tus bases de datos a la izquierda.

Paso 2: Selecciona la base de datos afectada

Haz clic en el nombre de la base de datos que quieres reparar. Verás la lista de tablas que contiene. Si alguna está corrupta, se mostrará con un mensaje de error o con un estado extraño.

Paso 3: Marca las tablas y elige "Reparar"

  1. En la parte inferior de la lista de tablas, hay una opción para "Marcar todas" o puedes seleccionar solo las que fallan.
  2. Una vez seleccionadas, despliega el menú desplegable que dice "Con seleccionar:".
  3. Elige la opción "Reparar tabla".

phpMyAdmin ejecutará la reparación y te mostrará un mensaje de éxito o de error. Si todo va bien, verás algo como "Su tabla ha sido reparada".

[TIP] Si la reparación falla, no te desesperes. A veces hay que intentarlo varias veces o usar el método de la línea de comandos, que es más potente.


Método 2: Reparar por línea de comandos con mysqlcheck (el más efectivo)

Este es el método que recomiendo para casos más serios o cuando phpMyAdmin no funciona. Usaremos la herramienta mysqlcheck, que viene incluida con MySQL/MariaDB y DirectAdmin.

Paso 1: Accede a la terminal (SSH)

Necesitas acceso SSH a tu servidor. Si no sabes cómo hacerlo, puedes usar el cliente web que a veces ofrece DirectAdmin en la sección "Terminal" o programas como PuTTY (en Windows) o la terminal nativa (en Mac/Linux).

Conéctate con tu usuario principal de DirectAdmin (el que tiene acceso a la base de datos). Si no tienes acceso SSH, contacta con tu proveedor de hosting.

Paso 2: Comprueba el estado de las tablas

Antes de reparar, es buena idea comprobar el estado. Ejecuta este comando:

mysqlcheck -u TU_USUARIO -p TU_BASE_DE_DATOS

Te pedirá la contraseña de tu base de datos. Verás una salida como esta:

nombre_tabla1 OK
nombre_tabla2
Error    : Table 'tu_bd.nombre_tabla2' doesn't exist
status   : Operation failed

Si ves líneas con "Error" y el mensaje de que la tabla está dañada, es el momento de reparar.

Paso 3: Repara todas las tablas de una vez

Para reparar todas las tablas de tu base de datos, usa el siguiente comando:

mysqlcheck -u TU_USUARIO -p --repair TU_BASE_DE_DATOS

O, si prefieres reparar solo una tabla específica:

mysqlcheck -u TU_USUARIO -p --repair TU_BASE_DE_DATOS nombre_tabla

La opción --repair intentará arreglar la tabla. Verás mensajes como "Repairing table 'nombre_tabla'" y al final "OK".

Paso 4: Usa la opción de reparación "extendida" (si falla)

Si el comando anterior no funciona, prueba con la reparación extendida, que es más lenta pero más exhaustiva:

mysqlcheck -u TU_USUARIO -p --repair --extended TU_BASE_DE_DATOS

O también puedes usar --use-frm si el problema es con la definición de la tabla:

mysqlcheck -u TU_USUARIO -p --repair --use-frm TU_BASE_DE_DATOS

[WARNING] El comando --use-frm puede ser destructivo si el archivo .frm (que define la estructura de la tabla) está dañado. Úsalo solo si sabes lo que haces y tienes una copia de seguridad.

Paso 5: Verifica que todo está correcto

Después de la reparación, vuelve a ejecutar el primer comando de comprobación:

mysqlcheck -u TU_USUARIO -p TU_BASE_DE_DATOS

Deberías ver "OK" en todas las tablas. Si es así, ¡enhorabuena! Tu base de datos está recuperada.


¿Y si nada de esto funciona?

Si después de intentar los métodos anteriores la base de datos sigue caída, no te rindas. Aún tienes opciones.

Opción 1: Restaurar desde una copia de seguridad

Si tienes una copia de seguridad reciente (en DirectAdmin puedes crearlas en la sección "Backup/Restore"), puedes restaurar la base de datos desde ahí. Esto sobrescribirá los datos actuales, así que asegúrate de que la copia es lo suficientemente reciente como para no perder información crítica.

Opción 2: Exportar y reimportar (si la estructura está bien)

A veces, aunque la tabla esté corrupta, puedes exportar los datos a un archivo SQL y luego reimportarlos en una tabla nueva. Esto es un poco más avanzado, pero se puede hacer desde phpMyAdmin:

  1. Exporta la base de datos (o solo la tabla dañada) en formato SQL.
  2. Elimina la tabla corrupta.
  3. Vuelve a importar el archivo SQL.

Opción 3: Contacta con tu proveedor de hosting

Si no tienes acceso SSH o las herramientas no te funcionan, contacta con el soporte de tu hosting. Ellos tienen acceso directo al servidor y pueden ejecutar comandos más potentes o incluso reiniciar el servicio MySQL.


Preguntas frecuentes (FAQ)

¿Cuánto tiempo tarda la reparación?

Depende del tamaño de la base de datos y del tipo de daño. Tablas pequeñas se reparan en segundos; bases de datos grandes (varios GB) pueden tardar varios minutos. Ten paciencia y no interrumpas el proceso.

¿Perderé datos al reparar?

En la mayoría de los casos, no. La reparación intenta recuperar la información existente. Sin embargo, si la tabla está muy dañada, es posible que se pierdan algunas filas. Por eso es vital tener copias de seguridad.

¿Puedo prevenir futuras caídas?

Sí, algunas buenas prácticas son:

  • Mantén tu CMS y plugins actualizados (WordPress, Joomla, etc.).
  • Realiza copias de seguridad periódicas (DirectAdmin permite programarlas).
  • Monitorea el espacio en disco y asegúrate de que siempre haya espacio libre.
  • Evita interrupciones de energía usando un SAI (UPS) si tu servidor es local.

¿Qué es "Syspanel" y por qué lo mencionas?

[INFO] En esta guía, si tu proveedor usa un panel alternativo llamado Syspanel (antes conocido como HestiaCP), el acceso por defecto es a través del puerto 2106 (por ejemplo, https://tu-servidor:2106). Los comandos de reparación de bases de datos son prácticamente los mismos, pero la interfaz gráfica puede variar ligeramente.


Conclusión: la calma y la paciencia son tus aliadas

Recuperar una base de datos caída en DirectAdmin no es misión imposible. Con las herramientas que te he mostrado (phpMyAdmin y mysqlcheck), podrás resolver la mayoría de los problemas de tablas corruptas sin necesidad de escalar a soporte técnico.

Recuerda siempre tener una copia de seguridad actualizada antes de intentar cualquier reparación, y si no te sientes seguro con la línea de comandos, empieza por el método gráfico.

Espero que esta guía te haya sido de ayuda. Si te has encontrado con un error concreto que no aparece aquí, déjalo en los comentarios (si estás en un blog) o consulta la documentación oficial de MySQL/MariaDB. ¡No estás solo en esto!

¿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