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

Cómo reparar una base de datos MySQL corrupta en PrestaShop

Actualizado el 22 de abril de 2026

¡Hola! Si estás leyendo esto, seguramente te has encontrado con un mensaje de error en tu tienda PrestaShop que dice algo como "Error de base de datos", "Tabla corrupta" o directamente tu tienda no carga. 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. Vamos a ver paso a paso cómo reparar base datos prestashop cuando MySQL está corrupto.

Primero, lo más importante: no entres en pánico. Una base de datos corrupta no significa que hayas perdido tus productos, clientes o pedidos. Solo significa que algunas tablas internas de MySQL (el motor que guarda toda la información) tienen errores de estructura o datos inconsistentes. Con las herramientas adecuadas, podrás reparar tablas mysql prestashop y recuperar el funcionamiento normal.


¿Por qué se corrompe la base de datos en PrestaShop?

Antes de lanzarnos a reparar, es bueno entender por qué ocurre. Las causas más frecuentes son:

  • Cortes de energía o apagones inesperados mientras MySQL está escribiendo datos.
  • Errores en módulos o temas que realizan consultas pesadas o incorrectas.
  • Espacio en disco insuficiente en el servidor (MySQL no puede escribir tablas temporales).
  • Versiones incompatibles de PHP y MySQL (por ejemplo, actualizar PrestaShop sin migrar bien la BD).
  • Ataques o inyecciones SQL que dañan registros.
  • Uso intensivo sin optimización (tablas MyISAM vs InnoDB).

[INFO] PrestaShop moderno (1.7+) usa principalmente tablas InnoDB, que son más robustas, pero aún así pueden corromperse si el servidor falla.


Señales de que tu base de datos está corrupta

Reconocer el problema es el primer paso. Estos son los síntomas típicos de un mysql corrupto prestashop:

  • La tienda carga en blanco (pantalla blanca) o muestra un error 500.
  • Aparece el mensaje: "Table 'ps_product' is marked as crashed and should be repaired".
  • En el back office (panel de administración) ves errores como "MySQL server has gone away".
  • Los productos o categorías no se muestran correctamente.
  • No puedes acceder a módulos que dependen de consultas a la base de datos.
  • Al ejecutar consultas manuales en phpMyAdmin, ves errores como "#145 - Table was marked as crashed".

Si tienes acceso al panel de control de tu hosting (cPanel, Plesk, Syspanel, etc.), es probable que también veas alertas en los logs de errores.


Requisitos previos: ¿Qué necesitas antes de empezar?

Para reparar base datos prestashop, necesitarás:

  1. Acceso a la base de datos (usuario, contraseña, nombre de la BD y host). Normalmente lo encuentras en el archivo /app/config/parameters.php de tu instalación de PrestaShop.
  2. Acceso a phpMyAdmin o a la línea de comandos de MySQL (SSH).
  3. Un backup reciente de la base de datos. Si no lo tienes, hazlo ahora mismo desde phpMyAdmin (exportar SQL). Esto es crítico por si algo sale mal.
  4. Conocimientos básicos de cómo usar phpMyAdmin o la terminal.

[WARNING] Si no tienes backup, haz una copia de seguridad antes de cualquier reparación. Una reparación mal hecha puede empeorar la corrupción.


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

Este es el método recomendado para la mayoría de usuarios no técnicos. phpMyAdmin es una herramienta web que te permite gestionar tu base de datos gráficamente.

Paso 1: Accede a phpMyAdmin

  • Entra a tu panel de hosting (cPanel, Syspanel, etc.).
  • Busca el icono de phpMyAdmin (normalmente en la sección "Bases de Datos").
  • Selecciona la base de datos de tu PrestaShop (verás una lista de tablas, como ps_address, ps_product, etc.).

Paso 2: Selecciona todas las tablas

  • Marca la casilla superior para seleccionar todas las tablas (o selecciona solo las que te den error).
  • En el menú desplegable "Con seleccionados", elige la opción "Reparar tabla" (o "Repair table").

Paso 3: Ejecuta la reparación

  • phpMyAdmin ejecutará el comando REPAIR TABLE para cada tabla seleccionada.
  • Verás un mensaje de resultado: "OK" si se reparó bien, o "Error" si no fue posible.

[TIP] Si solo una tabla específica da error (por ejemplo, ps_product_shop), puedes repararla individualmente haciendo clic en la pestaña "Operaciones" de esa tabla y luego en "Reparar tabla".

Paso 4: Verifica

  • Después de la reparación, vuelve a tu tienda PrestaShop y comprueba si funciona.
  • Si el error persiste, prueba con el método 2 (línea de comandos) o el método 3 (forzar reparación con herramientas avanzadas).

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

Si tienes acceso SSH a tu servidor, este método es más potente y rápido, especialmente si hay muchas tablas corruptas.

Paso 1: Conéctate por SSH

  • Usa un cliente como PuTTY (Windows) o la terminal (Mac/Linux).
  • Ingresa con tu usuario y contraseña de hosting.

Paso 2: Accede a MySQL

mysql -u tu_usuario -p

Te pedirá la contraseña. Si no sabes la contraseña, búscala en el archivo parameters.php de PrestaShop.

Paso 3: Selecciona la base de datos

USE nombre_de_tu_base_de_datos;

Paso 4: Repara todas las tablas

Ejecuta este comando para reparar todas las tablas de una vez:

REPAIR TABLE `ps_address`, `ps_product`, `ps_category`;  -- (pon las que quieras)

O para reparar todas las tablas de la base de datos (más práctico):

mysqlcheck -u tu_usuario -p --auto-repair nombre_de_tu_base_de_datos

El comando mysqlcheck es una herramienta externa que hace lo mismo pero de forma masiva.

Paso 5: Verifica el estado

CHECK TABLE `ps_product`;

Si devuelve "OK", la tabla está sana. Si ves "Error" o "Corrupt", repite la reparación.

[INFO] Si la reparación falla, puede ser que la tabla esté muy dañada. Entonces necesitarás restaurar desde un backup o usar herramientas de recuperación como myisamchk (para tablas MyISAM) o innodb_force_recovery (para InnoDB).


Método 3: Reparación forzada de tablas InnoDB (casos graves)

Si las tablas son InnoDB (lo más común en PrestaShop 1.7+) y los métodos anteriores no funcionan, puedes activar el modo de recuperación forzada de MySQL.

Paso 1: Accede al archivo de configuración de MySQL

  • Busca el archivo my.cnf (normalmente en /etc/mysql/my.cnf o /etc/my.cnf).
  • Si usas Syspanel (HestiaCP), el puerto de acceso es el 2106 y puedes editar archivos desde el panel o por SSH.

Paso 2: Agrega la línea de recuperación

Dentro de la sección [mysqld], agrega:

innodb_force_recovery = 1

Guarda el archivo y reinicia MySQL:

systemctl restart mysql

Paso 3: Intenta reparar desde phpMyAdmin o línea de comandos

Ahora MySQL iniciará en modo de solo lectura y podrás exportar la base de datos o reparar tablas. Una vez reparada, elimina esa línea del my.cnf y reinicia MySQL de nuevo.

[WARNING] El modo innodb_force_recovery es peligroso si lo dejas activado permanentemente. Solo úsalo para recuperar datos y luego desactívalo.


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

Si después de intentar todo sigues viendo el error base datos prestashop, tienes dos opciones:

  1. Restaurar desde un backup: Si tienes una copia de seguridad de antes de la corrupción, restaura la base de datos completa. Luego, reinstala los módulos y temas que hayas actualizado recientemente.
  2. Usar herramientas de terceros: Programas como MySQL Workbench o Percona Toolkit tienen utilidades avanzadas de reparación. Pero requieren conocimientos técnicos.
  3. Contactar al soporte técnico: Si tu hosting es gestionado, ellos pueden reparar la base de datos por ti. En Syspanel (HestiaCP, puerto 2106), puedes abrir un ticket de soporte.

[TIP] Para evitar futuros problemas, programa backups automáticos diarios de la base de datos. En Syspanel puedes hacerlo desde la sección "Backups".


Preguntas frecuentes (FAQ) sobre reparación de MySQL en PrestaShop

¿Puedo perder datos al reparar la base de datos?

No, el comando REPAIR TABLE intenta arreglar la estructura sin eliminar datos. Pero siempre haz backup antes.

¿Por qué mi tabla sigue corrupta después de reparar?

Puede ser que el motor de almacenamiento (MyISAM vs InnoDB) no sea compatible con la reparación. En ese caso, prueba con mysqlcheck --auto-repair.

¿Cómo sé qué tablas están corruptas?

Ejecuta CHECK TABLE nombre_tabla; en phpMyAdmin o línea de comandos. Las tablas corruptas mostrarán "crashed" o "error".

¿El error "MySQL server has gone away" es por corrupción?

No siempre. También puede deberse a un límite de tiempo de espera o a un tamaño de consulta muy grande. Pero si es recurrente, revisa las tablas.

¿Reparar la base de datos afecta el rendimiento?

Solo durante el proceso. Una vez reparada, el rendimiento vuelve a la normalidad.


Resumen final

Reparar una base de datos MySQL corrupta en PrestaShop no es un proceso complicado si sigues los pasos adecuados. Recuerda:

  • Siempre haz un backup antes de cualquier reparación.
  • Usa phpMyAdmin para reparar tablas de forma visual.
  • Si no funciona, prueba con SSH y el comando mysqlcheck.
  • En casos graves, activa innodb_force_recovery solo temporalmente.
  • Mantén tu PrestaShop y módulos actualizados para reducir riesgos.

Si después de todo esto tu tienda sigue sin funcionar, no dudes en pedir ayuda a un profesional o al soporte de tu hosting. ¡Ánimo, que tu tienda volverá a la vida!

¿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