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

Reparar tablas corruptas en MariaDB con Syspanel

Actualizado el 22 de junio de 2026

¿Tu web va lenta, muestra errores extraños o directamente no carga? Es posible que tengas una tabla corrupta en tu base de datos MariaDB. No te preocupes, es un problema más común de lo que crees y, con las herramientas adecuadas, se puede solucionar en pocos minutos.

En este artículo te voy a explicar paso a paso cómo reparar tablas corruptas en MariaDB usando Syspanel, el panel de control que viene integrado con HestiaCP (al que llamaremos siempre Syspanel). No necesitas ser un experto en bases de datos, solo seguir estas instrucciones al pie de la letra.


¿Qué es una tabla corrupta y por qué ocurre?

Una tabla corrupta es como un archivo de Excel que se ha dañado: los datos están desordenados, faltan partes o directamente no se pueden leer. En MariaDB, esto suele manifestarse con errores como:

  • "Table 'nombre_tabla' is marked as crashed and should be repaired"
  • "Can't open file: 'nombre_tabla.MYI'"
  • Consultas que nunca terminan o devuelven resultados incorrectos.
  • Tu web muestra un error 500 o una página en blanco.

Las causas más frecuentes son:

  • Cortes de energía repentinos mientras el servidor estaba escribiendo datos.
  • Fallos en el disco duro o en el sistema de archivos.
  • Uso de plugins o scripts mal optimizados.
  • Versiones antiguas de MariaDB con bugs conocidos.

La buena noticia es que MariaDB incluye herramientas nativas para reparar estas tablas, y Syspanel nos facilita mucho el acceso a ellas.


Requisitos antes de empezar

Antes de lanzarte a reparar, asegúrate de tener esto claro:

  1. Acceso a Syspanel: Debes poder entrar en tu panel. Recuerda que la URL es https://tu-dominio-o-ip:2106 (puerto 2106, no el típico 2083 de cPanel).
  2. Credenciales de administrador: Usuario y contraseña con permisos de root o de administrador de bases de datos.
  3. Backup reciente: Siempre haz una copia de seguridad de la base de datos afectada antes de reparar. Aunque la reparación suele ser segura, mejor prevenir.
  4. Conocimiento básico de la estructura: Saber qué base de datos y qué tablas están fallando. Si no lo sabes, tu proveedor de hosting o los logs de errores de tu web te lo dirán.

Método 1: Reparar tablas corruptas desde la interfaz de Syspanel

Esta es la forma más sencilla y visual, ideal si no te sientes cómodo con la línea de comandos.

Paso 1: Accede a Syspanel

Abre tu navegador y ve a https://tu-dominio-o-ip:2106. Inicia sesión con tu usuario administrador.

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

En el menú lateral izquierdo, busca la opción "Base de datos" o "Databases". Dependiendo de la versión de Syspanel, puede estar dentro de un submenú llamado "Servicios" o "Herramientas".

Paso 3: Selecciona la base de datos afectada

Verás una lista con todas tus bases de datos. Haz clic en el nombre de la base de datos que tiene la tabla corrupta.

Paso 4: Busca la opción de reparar

Dentro de la base de datos, verás una lista de tablas. Al lado de cada tabla suele haber un icono o un menú desplegable con acciones. Busca "Repair" o "Reparar". Si no lo ves, puede estar en un botón de "Herramientas" o "Acciones".

Paso 5: Confirma la reparación

Al hacer clic en "Reparar", Syspanel ejecutará el comando REPAIR TABLE de MariaDB. Dependiendo del tamaño de la tabla, puede tardar desde segundos hasta varios minutos. No cierres la ventana ni recargues la página durante el proceso.

[INFO] Si la reparación falla, Syspanel te mostrará un mensaje de error. En ese caso, pasa al Método 2.

Paso 6: Verifica el resultado

Una vez terminado, verás un mensaje como "OK" o "Table repaired". Para asegurarte, puedes ejecutar un CHECK TABLE desde la misma interfaz (suele estar en el mismo menú de acciones).


Método 2: Reparar tablas corruptas desde la línea de comandos (SSH)

Si la reparación desde Syspanel no funciona, o si prefieres más control, este método es más potente.

Paso 1: Conéctate por SSH a tu servidor

Usa un cliente como PuTTY (Windows) o la terminal (Mac/Linux). Necesitarás las credenciales de root o de un usuario con permisos sudo.

Paso 2: Accede a MariaDB

Escribe el siguiente comando y presiona Enter:

mysql -u root -p

Te pedirá la contraseña de root de MariaDB (no la de Syspanel). Si no la sabes, pídela a tu proveedor de hosting o búscala en el archivo de configuración de Syspanel (suele estar en /usr/local/hestia/conf/mysql.conf).

Paso 3: Selecciona la base de datos

Una vez dentro de la consola de MariaDB, escribe:

USE nombre_de_tu_base_de_datos;

Reemplaza nombre_de_tu_base_de_datos por el nombre real.

Paso 4: Identifica las tablas corruptas

Primero, verifica qué tablas están dañadas:

CHECK TABLE nombre_de_tu_tabla;

Si la tabla está corrupta, verás un mensaje como "Table is marked as crashed" o "Error".

Paso 5: Repara la tabla

Ejecuta el comando de reparación:

REPAIR TABLE nombre_de_tu_tabla;

MariaDB intentará reparar la tabla automáticamente. Si funciona, verás "OK" y "Table repaired".

[WARNING] Si la tabla es muy grande (más de 1 GB), la reparación puede consumir muchos recursos del servidor. Es mejor hacerlo en horas de bajo tráfico.

Paso 6: Si el comando REPAIR no funciona

A veces la reparación simple falla. Prueba con una reparación extendida:

REPAIR TABLE nombre_de_tu_tabla EXTENDED;

O incluso más agresiva:

REPAIR TABLE nombre_de_tu_tabla USE_FRM;

Este último intenta reconstruir la tabla usando el archivo .frm (definición de la tabla). Úsalo solo si sabes que la estructura de la tabla no ha cambiado.

Paso 7: Verifica de nuevo

Después de reparar, ejecuta otra vez el CHECK TABLE para confirmar que todo está bien.

Paso 8: Sal de MariaDB

Escribe exit y presiona Enter para volver a la terminal.


Método 3: Reparar todas las tablas de una base de datos a la vez

Si tienes muchas tablas corruptas, repararlas una por una es tedioso. Puedes hacerlo en lote desde la terminal.

Paso 1: Conéctate a MariaDB como antes

mysql -u root -p

Paso 2: Usa un bucle para reparar todas las tablas

USE nombre_de_tu_base_de_datos;
SET @tables = NULL;
SELECT GROUP_CONCAT(table_name) INTO @tables
  FROM information_schema.tables
  WHERE table_schema = 'nombre_de_tu_base_de_datos';
SET @tables = CONCAT('REPAIR TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Este script SQL genera y ejecuta un comando REPAIR TABLE para todas las tablas de la base de datos.

[INFO] Si alguna tabla no está corrupta, el comando simplemente la ignorará o dirá "Table is already up to date".


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

Si después de intentar los métodos anteriores la tabla sigue corrupta, tienes estas opciones:

Opción 1: Restaurar desde un backup

Esta es la solución más segura. Si tienes una copia de seguridad de la base de datos anterior a la corrupción, restáurala desde Syspanel:

  1. En Syspanel, ve a "Base de datos".
  2. Busca la opción "Restaurar" o "Importar".
  3. Sube el archivo .sql de tu backup.
  4. Espera a que termine la restauración.

Opción 2: Usar la herramienta myisamchk (solo para tablas MyISAM)

Si tu tabla usa el motor MyISAM (el más antiguo), puedes intentar repararla desde la terminal sin entrar a MariaDB:

myisamchk -r /var/lib/mysql/nombre_base_datos/nombre_tabla.MYI

Necesitarás la ruta exacta donde se almacenan los archivos de la base de datos (normalmente en /var/lib/mysql/).

Opción 3: Contactar al soporte técnico

Si nada funciona, el problema puede ser más grave (disco dañado, corrupción del sistema de archivos). Tu proveedor de hosting o el equipo de Syspanel pueden ayudarte a diagnosticar y reparar a nivel de servidor.


Preguntas frecuentes (FAQ)

¿Reparar una tabla corrupta borra datos?

No, la reparación intenta recuperar la mayor cantidad de datos posible. Sin embargo, si la corrupción es severa, puede perder algunos registros. Por eso es vital tener backups.

¿Puedo reparar tablas mientras mi web está online?

Sí, pero es arriesgado. Si la tabla está en uso mientras la reparas, podrías causar más daños. Mejor pon tu web en modo mantenimiento o hazlo en horas de poco tráfico.

¿Cómo sé qué motor de almacenamiento usa mi tabla?

Desde Syspanel, al ver los detalles de la tabla, suele aparecer el motor (InnoDB o MyISAM). Desde la línea de comandos:

SHOW TABLE STATUS WHERE Name = 'nombre_tabla';

¿Syspanel repara tablas InnoDB?

Sí, el comando REPAIR TABLE funciona en InnoDB, pero es menos efectivo que en MyISAM. Para InnoDB, a veces es mejor exportar los datos, borrar la tabla y reimportar.

¿Cada cuánto debo revisar mis tablas?

No hay una regla fija, pero si tu web tiene mucho tráfico o usas plugins pesados, programa un CHECK TABLE semanal desde un cron job.


Conclusión

Reparar tablas corruptas en MariaDB con Syspanel es un proceso que, siguiendo estos pasos, está al alcance de cualquier usuario. Ya sea desde la interfaz gráfica o por línea de comandos, lo importante es actuar rápido para minimizar el impacto en tu web.

Recuerda siempre:

  • Haz backups periódicos (Syspanel permite programarlos).
  • Mantén actualizado MariaDB y tu panel.
  • Si dudas, pide ayuda a un profesional.

Con estas herramientas, podrás resolver la mayoría de los problemas de corrupción sin necesidad de ser un experto en bases de datos. ¡Tu web volverá a funcionar en minutos!

¿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