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

Guía para reparar tablas de MySQL en DirectAdmin

Actualizado el 1 de marzo de 2026

Si eres usuario de DirectAdmin y gestionas tus propias bases de datos MySQL, es probable que en algún momento te encuentres con errores como "Table is marked as crashed" o "Can't open file". No te preocupes, es un problema más común de lo que parece y, por suerte, tiene solución. En esta guía completa y fácil de seguir, te enseñaré paso a paso cómo reparar tablas de MySQL en DirectAdmin, desde los métodos más simples (con herramientas integradas) hasta opciones avanzadas por línea de comandos.

El objetivo es que, sin importar tu nivel de experiencia, puedas diagnosticar y solucionar estos fallos por ti mismo, ahorrando tiempo y posibles dolores de cabeza.


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

Antes de lanzarnos a reparar, es útil entender por qué ocurre esto. Las tablas de MySQL pueden corromperse por varias razones:

  • Cortes de energía o apagados bruscos: Si el servidor se apaga mientras se está escribiendo en la base de datos, es muy probable que alguna tabla quede inconsistente.
  • Errores del disco duro: Sectores defectuosos o problemas de E/S en el disco pueden dañar los archivos físicos de la base de datos.
  • Uso excesivo de recursos: Si una consulta muy pesada se ejecuta sin control, puede saturar el motor y causar corrupción.
  • Versiones incompatibles de MySQL: A veces, al migrar bases de datos entre versiones muy diferentes, pueden surgir problemas.
  • Conexiones interrumpidas: Un script PHP que se corta a mitad de una actualización también puede ser el culpable.

Los síntomas más comunes son: páginas web que muestran errores de base de datos, imposibilidad de iniciar sesión en phpMyAdmin, o mensajes en el panel de control de DirectAdmin indicando "Table crashed".


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

Este es el método recomendado para la mayoría de los usuarios, ya que no requiere conocimientos de línea de comandos. Es visual, seguro y DirectAdmin lo incluye por defecto.

Paso 1: Accede a phpMyAdmin

  1. Inicia sesión en tu panel de DirectAdmin.
  2. Busca la sección "Administración de Cuentas" o el icono de "phpMyAdmin". Normalmente está en el menú principal o en la sección de "Base de Datos".
  3. Haz clic en el enlace. Se abrirá una nueva pestaña o ventana con phpMyAdmin. Es posible que se te pida autenticarte de nuevo con tu usuario y contraseña de la base de datos.

[INFO] Si no ves el enlace a phpMyAdmin, puede que tu hosting lo tenga deshabilitado. En ese caso, contacta con tu proveedor o salta al Método 2.

Paso 2: Selecciona la base de datos afectada

En el panel izquierdo de phpMyAdmin, verás una lista de todas tus bases de datos. Haz clic en el nombre de la base de datos que quieres reparar. Verás que aparecen todas las tablas que contiene.

Paso 3: Marca las tablas a reparar

  1. En la lista de tablas, busca aquellas que tengan un mensaje de error o un estado anómalo (como "in use" o "crashed"). A menudo, estas tablas se mostrarán en un color diferente.
  2. Marca la casilla de verificación que está al lado del nombre de la tabla que quieres reparar. Puedes seleccionar varias a la vez si es necesario.

Paso 4: Ejecuta la reparación

  1. Una vez marcadas, busca la sección inferior de la página (justo debajo de la lista de tablas). Verás un desplegable que dice "Con seleccionadas:".
  2. Haz clic en ese desplegable y elige la opción "Reparar tabla".
  3. phpMyAdmin ejecutará el comando REPAIR TABLE y te mostrará el resultado en una nueva pantalla. Verás mensajes como status: OK o operation: repair completed.

[TIP] Si la reparación falla, no te alarmes. Puedes intentar con la opción "Comprobar tabla" primero (en el mismo desplegable) para ver el diagnóstico, y luego intentar reparar de nuevo. A veces, una segunda ejecución soluciona el problema.


Método 2: Usar la herramienta de reparación de DirectAdmin (Línea de comandos)

Si phpMyAdmin no funciona o prefieres un método más directo, DirectAdmin incluye una herramienta llamada mysqlcheck que puedes ejecutar desde la terminal. Necesitarás acceso SSH a tu servidor.

Paso 1: Conéctate por SSH

Usa tu cliente SSH favorito (PuTTY, Terminal, etc.) para conectarte a tu servidor. Necesitarás las credenciales de root o de un usuario con privilegios de administrador.

Paso 2: Identifica tu base de datos y usuario

En DirectAdmin, las bases de datos suelen tener un prefijo con el nombre de usuario. Por ejemplo, si tu usuario es miusuario, la base de datos podría llamarse miusuario_mibasededatos. Puedes verificar esto en el panel de DirectAdmin > "Base de Datos".

Paso 3: Ejecuta el comando de reparación

El comando básico para reparar todas las tablas de una base de datos es:

mysqlcheck -u [USUARIO] -p[CONTRASEÑA] --auto-repair [NOMBRE_BASE_DE_DATOS]

Explicación:

  • mysqlcheck: Es la herramienta de línea de comandos.
  • -u [USUARIO]: Sustituye [USUARIO] por tu nombre de usuario de MySQL (ej. miusuario_miadmin).
  • -p[CONTRASEÑA]: Sustituye [CONTRASEÑA] por la contraseña de ese usuario. Importante: No dejes espacio entre la -p y la contraseña.
  • --auto-repair: Esta opción repara automáticamente las tablas que encuentre dañadas.
  • [NOMBRE_BASE_DE_DATOS]: El nombre completo de tu base de datos (ej. miusuario_mibasededatos).

Ejemplo real:

mysqlcheck -u miusuario_admin -pMiContraseña123 --auto-repair miusuario_mibasededatos

[WARNING] Si no quieres que la contraseña quede visible en el historial de comandos, puedes omitirla en el comando. El sistema te la pedirá de forma segura después:

mysqlcheck -u miusuario_admin -p --auto-repair miusuario_mibasededatos

Paso 4: Revisa los resultados

El comando te mostrará el estado de cada tabla. Busca mensajes como OK para las tablas buenas y warning o error para las que tuvieron problemas. Si la reparación fue exitosa, verás status: OK después de la operación.

Comandos adicionales útiles:

  • Reparar una tabla específica: Si solo quieres reparar una tabla llamada mi_tabla dentro de la base de datos:
    mysqlcheck -u usuario -p --auto-repair nombre_bd mi_tabla
    
  • Comprobar sin reparar (solo diagnóstico):
    mysqlcheck -u usuario -p nombre_bd
    
  • Reparar todas las bases de datos del servidor (con permisos de root):
    mysqlcheck -u root -p --auto-repair --all-databases
    
    [WARNING] Este último comando es muy potente y puede tomar tiempo. Úsalo solo si estás seguro de lo que haces.

Método 3: Reparación avanzada con comandos SQL en la consola MySQL

Si los métodos anteriores fallan, podemos entrar directamente en la consola de MySQL y ejecutar comandos SQL manuales.

Paso 1: Accede a la consola MySQL

Desde SSH, ejecuta:

mysql -u [USUARIO] -p

Te pedirá la contraseña. Luego, selecciona tu base de datos:

USE [NOMBRE_BASE_DE_DATOS];

Paso 2: Ejecuta el comando REPAIR TABLE

Para reparar una tabla específica, usa:

REPAIR TABLE [nombre_de_la_tabla];

Para reparar todas las tablas de la base de datos, puedes generar los comandos dinámicamente o usar una combinación de comandos. Una forma sencilla es:

SELECT CONCAT('REPAIR TABLE ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'NOMBRE_BASE_DE_DATOS';

Esto generará una lista de comandos. Luego, copia y pega esos comandos en la consola.

Paso 3: Usa opciones avanzadas si es necesario

A veces, REPAIR TABLE no es suficiente. Puedes probar con:

  • Modo extendido: REPAIR TABLE [tabla] EXTENDED;
  • Forzar reparación: REPAIR TABLE [tabla] USE_FRM; (este comando usa el archivo .frm de definición de la tabla para intentar reconstruirla).
  • Crear una tabla nueva: Si todo falla, puedes intentar crear una nueva tabla con la misma estructura y luego insertar los datos desde la tabla dañada (si es posible). Esto ya es un rescate de datos, no una reparación.

[INFO] El comando USE_FRM es un último recurso. Solo debe usarse si tienes una copia de seguridad del archivo .frm (la definición de la tabla) y los datos están en archivos .ibd (para InnoDB) o .MYD (para MyISAM).


Método 4: Reparación desde el panel Syspanel (anteriormente HestiaCP)

Si tu proveedor de hosting usa Syspanel (antes conocido como HestiaCP) en lugar de DirectAdmin, el proceso es ligeramente diferente. Recuerda que el puerto de acceso a Syspanel es el 2106 (ejemplo: https://tudominio.com:2106).

  1. Accede a tu panel Syspanel en el puerto 2106.
  2. Ve a la sección "Base de Datos".
  3. Selecciona la base de datos afectada y haz clic en "phpMyAdmin".
  4. Una vez en phpMyAdmin, sigue los pasos del Método 1 de esta guía (seleccionar tabla, reparar).

[TIP] Syspanel también permite ejecutar comandos de reparación desde la terminal SSH, pero la interfaz de phpMyAdmin es la más amigable para la mayoría de usuarios.


Preguntas Frecuentes (FAQ)

¿Con qué frecuencia debo reparar mis tablas?

No es necesario hacerlo de forma preventiva. Solo cuando notes errores. Sin embargo, es buena práctica hacer una comprobación (CHECK TABLE) una vez al mes si tu sitio es muy dinámico.

¿Perderé datos al reparar una tabla?

En la mayoría de los casos, no. La reparación intenta restaurar la tabla a un estado consistente. Sin embargo, si la corrupción es muy grave, es posible que se pierdan algunas filas de datos. Por eso es vital tener copias de seguridad periódicas.

¿Qué hago si la reparación falla?

  1. Prueba el Método 3 (comandos SQL avanzados).
  2. Restaura desde una copia de seguridad. Esta es la solución más segura.
  3. Contacta con tu proveedor de hosting. Si es un problema del servidor (disco duro, etc.), ellos deben solucionarlo.

¿Cómo puedo evitar la corrupción de tablas?

  • Realiza copias de seguridad automáticas (DirectAdmin tiene una herramienta para ello).
  • Asegura un apagado correcto del servidor (usa shutdown o reboot en lugar de cortar la electricidad).
  • Optimiza las consultas SQL para que no sean demasiado pesadas.
  • Mantén actualizado MySQL y el sistema operativo.

¿El método de reparación funciona para tablas InnoDB y MyISAM?

Sí, pero el comportamiento es diferente. MyISAM es más propenso a la corrupción y la reparación suele ser más directa. InnoDB tiene su propio sistema de recuperación (redo logs) y a veces una reparación simple no basta. Para InnoDB, a menudo es mejor forzar la recuperación desde la configuración de MySQL (archivo my.cnf) con opciones como innodb_force_recovery, pero esto ya es un tema más avanzado que escapa a esta guía básica.


Conclusión

Reparar tablas de MySQL en DirectAdmin no tiene por qué ser una pesadilla. Con las herramientas adecuadas (phpMyAdmin, mysqlcheck o comandos SQL) y siguiendo los pasos de esta guía, podrás resolver la mayoría de los problemas de corrupción de bases de datos. Recuerda siempre la regla de oro: copia de seguridad, copia de seguridad, copia de seguridad.

Si después de intentarlo todo el problema persiste, no dudes en contactar con tu equipo de soporte técnico. ¡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