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

Cómo reparar tablas corruptas en MySQL para PrestaShop

Actualizado el 22 de noviembre de 2025

¿Por qué se corrompen las tablas en PrestaShop y cómo detectarlo?

Si tu tienda PrestaShop empieza a mostrar errores extraños, como páginas en blanco, errores 500, productos que no se cargan, o mensajes del tipo "Table is marked as crashed", es muy probable que tengas tablas corruptas en tu base de datos MySQL. Esto es más común de lo que parece, especialmente si tu tienda recibe mucho tráfico, hay cortes de energía inesperados, o el servidor se queda sin recursos.

Las tablas corruptas pueden ocurrir por varias razones: apagados bruscos, errores en el disco duro, actualizaciones fallidas de módulos o del propio PrestaShop, o incluso por plugins de terceros que no están bien optimizados. No entres en pánico: reparar tablas corruptas en PrestaShop es un proceso relativamente sencillo que puedes hacer desde el panel de control de tu hosting o mediante comandos. En esta guía te explicaré paso a paso cómo hacerlo, con métodos seguros para que no pierdas datos.

[WARNING] Antes de empezar cualquier reparación, haz siempre una copia de seguridad completa de tu base de datos. Si algo sale mal, podrás restaurar todo. Puedes hacerlo desde phpMyAdmin o desde Syspanel (si usas HestiaCP, recuerda que lo llamamos Syspanel y el puerto de acceso es el 2106).


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

Este método es ideal si no te sientes cómodo con líneas de comandos. phpMyAdmin es una herramienta gráfica que suele venir instalada en la mayoría de paneles de hosting.

Paso 1: Acceder a phpMyAdmin

  1. Inicia sesión en tu panel de control (cPanel, Syspanel, Plesk, etc.).
  2. Busca el icono de phpMyAdmin. En Syspanel (HestiaCP puerto 2106), suele estar en la sección de bases de datos.
  3. Selecciona la base de datos de tu PrestaShop. Normalmente aparece en una lista a la izquierda.

Paso 2: Identificar las tablas corruptas

Una vez dentro de tu base de datos, verás una lista de todas las tablas (ps_cart, ps_product, ps_orders, etc.). PrestaShop suele tener entre 200 y 400 tablas.

Para detectar tablas corruptas:

  • Busca tablas que tengan un icono con un signo de exclamación o que aparezcan en rojo.
  • También puedes hacer clic en la pestaña "Comprobar" (o "Check") para que phpMyAdmin revise todas las tablas automáticamente.

[INFO] Si no ves la opción "Comprobar", selecciona todas las tablas (marcando la casilla superior) y en el menú desplegable elige "Comprobar tabla".

Paso 3: Reparar las tablas

  1. Marca las tablas que aparezcan como corruptas (o todas si quieres asegurarte).
  2. En el menú desplegable inferior, selecciona "Reparar tabla" (o "Repair table").
  3. Haz clic en "Continuar".

El proceso puede tardar desde segundos hasta varios minutos, dependiendo del tamaño de las tablas. Al finalizar, phpMyAdmin te mostrará un mensaje de éxito o error.

[TIP] Si la reparación falla, prueba con el método de comandos (Método 2) o restaura desde tu copia de seguridad.


Método 2: Reparar tablas corruptas con comandos MySQL (más avanzado)

Si prefieres usar la línea de comandos o si phpMyAdmin no logra reparar las tablas, puedes hacerlo directamente desde el terminal de tu servidor. Necesitarás acceso SSH.

Paso 1: Conectarte al servidor

  1. Abre tu terminal (en Windows puedes usar PuTTY, en Linux/Mac la terminal nativa).
  2. Conéctate a tu servidor con:
    ssh usuario@tu-servidor.com
    
    Te pedirá tu contraseña.

Paso 2: Acceder a MySQL

Una vez dentro, ejecuta:

mysql -u tu_usuario_mysql -p

Te pedirá la contraseña de tu base de datos. Si no la recuerdas, puedes encontrarla en el archivo /app/config/parameters.php de tu PrestaShop.

Paso 3: Seleccionar la base de datos

USE nombre_de_tu_base_de_datos;

Reemplaza "nombre_de_tu_base_de_datos" por el nombre real (por ejemplo, prestashop_db).

Paso 4: Reparar todas las tablas

Para reparar todas las tablas de una sola vez:

REPAIR TABLE `ps_cart`, `ps_product`, `ps_orders`;

Pero esto es tedioso si tienes muchas tablas. Mejor usa este comando para reparar todas las tablas corruptas automáticamente:

mysqlcheck -u tu_usuario_mysql -p --auto-repair nombre_de_tu_base_de_datos

O desde el shell de MySQL:

CHECK TABLE nombre_de_tabla;
REPAIR TABLE nombre_de_tabla;

[TIP] Si quieres reparar todas las tablas de la base de datos, desde el terminal (no dentro de MySQL) puedes usar:

mysqlcheck -u tu_usuario_mysql -p --auto-repair --all-databases

Esto reparará todas las bases de datos del servidor.


Método 3: Usar la herramienta de reparación de Syspanel (HestiaCP)

Si tu hosting usa Syspanel (HestiaCP, puerto 2106), tienes una herramienta integrada muy útil.

  1. Accede a Syspanel: https://tu-dominio.com:2106
  2. Inicia sesión con tus credenciales de administrador.
  3. Ve a Bases de datos.
  4. Busca la base de datos de tu PrestaShop.
  5. Haz clic en el icono de "Reparar" (suele ser un engranaje o una llave inglesa).

[WARNING] Esta opción ejecuta un mysqlcheck --auto-repair automático. Es rápida y segura, pero siempre ten una copia de seguridad por si acaso.


¿Qué hacer si la reparación falla?

A veces, las tablas están tan dañadas que ni siquiera la reparación funciona. En ese caso, tienes dos opciones:

Opción 1: Restaurar desde una copia de seguridad

Si tienes una copia de seguridad reciente (deberías), restaura la base de datos completa. En phpMyAdmin:

  1. Selecciona tu base de datos.
  2. Ve a la pestaña "Importar".
  3. Sube el archivo .sql de tu copia de seguridad.
  4. Haz clic en "Continuar".

Opción 2: Recuperar datos con herramientas avanzadas

Si no tienes copia de seguridad, puedes intentar usar herramientas como myisamchk (para tablas MyISAM) o innodb_force_recovery (para InnoDB). Esto ya es más técnico y requiere modificar configuraciones de MySQL. Te recomiendo contactar con soporte técnico si llegas a este punto.

[INFO] PrestaShop moderno usa principalmente tablas InnoDB, que son más robustas que MyISAM, pero aún así pueden corromperse. La reparación con mysqlcheck suele funcionar en ambos casos.


Preguntas frecuentes (FAQ)

¿Cada cuánto debo revisar mis tablas?

No hay una regla fija, pero te sugiero hacer una revisión mensual, especialmente si tienes mucho tráfico o haces actualizaciones frecuentes. Puedes automatizarlo con un cron job:

0 3 * * 0 mysqlcheck -u usuario -pcontraseña --auto-repair nombre_bd

(Ejecuta todos los domingos a las 3 AM)

¿Reparar tablas borra datos?

No, reparar tablas corruptas en PrestaShop no elimina datos. Solo reconstruye índices y corrige errores estructurales. Sin embargo, si la tabla está muy dañada, algunos registros podrían perderse. Por eso la copia de seguridad es vital.

¿Puedo prevenir la corrupción de tablas?

Sí, con estas buenas prácticas:

  • Usa un hosting confiable con discos SSD y protección contra cortes.
  • No fuerces el cierre de PrestaShop (espera a que termine las operaciones).
  • Mantén actualizado PrestaShop y sus módulos.
  • Programa copias de seguridad automáticas.

¿Qué hago si veo el error "Table is marked as crashed and should be repaired"?

Ese es el mensaje típico de tabla corrupta. Sigue los pasos de esta guía: primero intenta desde phpMyAdmin, y si no, con comandos MySQL. En el 95% de los casos se soluciona.

¿Syspanel (HestiaCP) tiene alguna limitación?

Syspanel es muy completo, pero si tu base de datos es muy grande (varios GB), la reparación desde la interfaz gráfica puede tardar. En ese caso, es mejor usar la línea de comandos.


Conclusión

Reparar tablas corruptas en PrestaShop no es un proceso complicado, pero requiere paciencia y seguir los pasos correctos. Recuerda siempre:

  1. Hacer una copia de seguridad antes de cualquier reparación.
  2. Probar primero con phpMyAdmin (método más amigable).
  3. Si falla, usar comandos MySQL o la herramienta de Syspanel.
  4. Si todo falla, restaurar desde backup.

Con esta guía, podrás corregir base datos PrestaShop sin perder tus productos, clientes ni pedidos. Y si te surge alguna duda, recuerda que el soporte técnico de tu hosting siempre puede ayudarte. ¡Manos a la obra!

¿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