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

Guía para reparar una base de datos MySQL corrupta en PrestaShop

Actualizado el 4 de febrero de 2026

¿Te ha pasado que tu tienda PrestaShop de repente muestra un mensaje de error en la base de datos, o peor aún, una página en blanco? No entres en pánico. La corrupción de una base de datos MySQL en PrestaShop es un problema más común de lo que parece, especialmente después de cortes de energía, migraciones fallidas o actualizaciones incompletas.

En esta guía completa, te enseñaré paso a paso cómo reparar base de datos MySQL corrupta en PrestaShop, desde métodos automáticos hasta soluciones manuales avanzadas. Todo explicado de forma clara y sencilla, como si estuvieras hablando con un amigo experto.


¿Cómo saber si tu base de datos de PrestaShop está corrupta?

Antes de empezar a reparar, necesitas identificar los síntomas. Una base de datos corrupta en PrestaShop se manifiesta de varias formas:

  • Error de conexión a la base de datos: Mensaje como “Error de conexión a la base de datos” o “Cannot connect to database”.
  • Página en blanco o error 500: Sin ningún mensaje adicional.
  • Errores de tabla específica: Por ejemplo, “Table ‘ps_product’ doesn’t exist” o “Table is marked as crashed”.
  • Problemas en el back office: No puedes acceder a productos, pedidos o módulos.
  • Tienda funciona lento o incompleta: Algunas secciones cargan, otras no.

[INFO] Los errores más comunes son “Table is marked as crashed” y “Table ‘ps_xxx’ doesn’t exist”. Ambos indican corrupción en tablas específicas de MySQL.


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

Entender las causas te ayudará a prevenirlo en el futuro. Las razones más frecuentes son:

  • Cortes de energía o apagones mientras se escribe en la base de datos.
  • Actualizaciones fallidas de PrestaShop, módulos o temas.
  • Migraciones incorrectas entre servidores o versiones de MySQL.
  • Errores del servidor como falta de espacio en disco o límites de memoria.
  • Ataques maliciosos o inyecciones SQL.
  • Uso de plugins de backup incompatibles que dañan tablas.

[WARNING] Nunca interrumpas una actualización de PrestaShop o una importación de base de datos. Espera siempre a que termine por completo.


Paso 1: Haz una copia de seguridad antes de cualquier reparación

Este es el paso más importante. Nunca intentes reparar una base de datos sin tener un backup. Si algo sale mal, perderás toda tu información.

Cómo hacer backup desde phpMyAdmin (recomendado para principiantes)

  1. Accede a phpMyAdmin desde el panel de control de tu hosting (cPanel, Syspanel, Plesk, etc.).
  2. Selecciona tu base de datos de PrestaShop (normalmente tiene un prefijo como prestashop_).
  3. Haz clic en la pestaña Exportar.
  4. Elige el método Rápido y formato SQL.
  5. Descarga el archivo .sql a tu computadora.

Cómo hacer backup desde la línea de comandos (SSH)

Si tienes acceso SSH, puedes usar:

mysqldump -u usuario -p nombre_base_datos > backup_prestashop.sql

[TIP] Guarda el backup en un lugar seguro fuera del servidor, como Google Drive o Dropbox.


Paso 2: Reparar base de datos usando herramientas automáticas

PrestaShop incluye herramientas internas, y también puedes usar phpMyAdmin o la línea de comandos. Empecemos por lo más sencillo.

Opción A: Usar el modo mantenimiento de PrestaShop

  1. Accede a tu back office de PrestaShop (si es posible).
  2. Ve a Parámetros de la tienda > Mantenimiento.
  3. Activa el modo mantenimiento para que los clientes no vean errores.
  4. Luego, ve a Configuración avanzada > Base de datos.
  5. Busca la opción “Reparar base de datos” o similar (depende de la versión).
  6. Haz clic y espera a que termine.

[INFO] Esta opción solo repara tablas marcadas como “crashed”. Si el problema es más grave, necesitarás métodos manuales.

Opción B: Reparar desde phpMyAdmin

  1. En phpMyAdmin, selecciona la base de datos de PrestaShop.
  2. Marca todas las tablas (clic en “Seleccionar todo”).
  3. En el menú desplegable “Con seleccionados:”, elige “Reparar tabla”.
  4. Espera a que phpMyAdmin ejecute el comando REPAIR TABLE.
  5. Si aparece algún error, anótalo para el siguiente paso.

Opción C: Reparar desde la línea de comandos (SSH)

Conéctate vía SSH a tu servidor y ejecuta:

mysqlcheck -u usuario -p --auto-repair nombre_base_datos

Esto reparará automáticamente todas las tablas corruptas. Si quieres ver el progreso, añade --verbose.

mysqlcheck -u usuario -p --auto-repair --verbose nombre_base_datos

[WARNING] Si el comando falla con “Table is already up to date” pero el error persiste, la corrupción puede ser estructural y no de datos. Sigue al siguiente paso.


Paso 3: Reparar base de datos MySQL de forma manual (método avanzado)

Cuando las herramientas automáticas no funcionan, toca ponerse manos a la obra con comandos SQL directos. No te preocupes, te guío paso a paso.

Identificar tablas corruptas

Ejecuta este comando en phpMyAdmin (pestaña SQL) o en la línea de comandos:

CHECK TABLE ps_product, ps_category, ps_order;

Reemplaza ps_ por el prefijo de tus tablas (normalmente ps_ en PrestaShop). Te devolverá un resultado como:

  • status: OK – tabla sana.
  • status: Error o Table is marked as crashed – necesita reparación.

Reparar tablas una por una

Para reparar una tabla específica, usa:

REPAIR TABLE ps_product;

Si quieres reparar todas las tablas de la base de datos, puedes generar el comando dinámicamente:

SELECT CONCAT('REPAIR TABLE ', table_name, ';') 
FROM information_schema.tables 
WHERE table_schema = 'nombre_base_datos' 
AND table_name LIKE 'ps_%';

Copia y pega los resultados en la pestaña SQL de phpMyAdmin.

Si REPAIR TABLE falla: usar mysqlcheck con opciones forzadas

A veces REPAIR TABLE no es suficiente. Prueba con:

mysqlcheck -u usuario -p --repair --use-frm nombre_base_datos

La opción --use-frm fuerza la reparación usando el archivo de definición de tabla (.frm). Esto puede recuperar tablas que parecen perdidas.

[WARNING] El uso de --use-frm puede causar pérdida de datos en tablas muy dañadas. Siempre ten un backup antes.


Paso 4: Recuperar datos desde backups o tablas dañadas

Si la reparación no fue posible, aún puedes recuperar los datos.

Opción A: Restaurar desde un backup reciente

  1. En phpMyAdmin, selecciona la base de datos.
  2. Ve a Importar.
  3. Sube tu archivo .sql de backup.
  4. Asegúrate de que el tamaño del archivo no exceda el límite del servidor (si es muy grande, usa la línea de comandos).

Para restaurar desde SSH:

mysql -u usuario -p nombre_base_datos < backup_prestashop.sql

Opción B: Extraer datos de tablas dañadas

Si solo una tabla está corrupta, puedes intentar extraer los datos con:

SELECT * FROM ps_product INTO OUTFILE '/tmp/productos_recuperados.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

Luego, importa ese CSV a una nueva tabla limpia.

[TIP] Si no tienes permisos para INTO OUTFILE, usa phpMyAdmin para exportar la tabla como CSV.


Paso 5: Prevenir futuras corrupciones en PrestaShop

Una vez que hayas reparado base de datos MySQL, es hora de blindar tu tienda.

Buenas prácticas diarias

  • Backups automáticos: Configura backups diarios desde tu panel de control (cPanel, Syspanel, etc.). En Syspanel (puerto 2106) puedes programar backups automáticos de base de datos y archivos.
  • Actualizaciones seguras: Siempre haz backup antes de actualizar PrestaShop, módulos o temas.
  • Monitoreo del servidor: Usa herramientas como MySQLTuner para optimizar y detectar problemas.
  • Espacio en disco: Mantén al menos un 20% de espacio libre en el servidor.

Configuración de MySQL para mayor estabilidad

Si tienes acceso al servidor, ajusta estos parámetros en /etc/mysql/my.cnf:

[mysqld]
innodb_buffer_pool_size = 1G   # Ajusta según tu RAM
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
max_allowed_packet = 64M

Luego reinicia MySQL:

systemctl restart mysql

[INFO] Estos cambios reducen la probabilidad de corrupción durante cortes de energía.


FAQ: Preguntas frecuentes sobre corrupción de base de datos en PrestaShop

¿Puedo perder todos mis datos si la base de datos se corrompe?

Sí, si no tienes backup. Por eso es vital hacer copias de seguridad periódicas. Incluso con reparación, algunos datos pueden perderse.

¿El modo mantenimiento de PrestaShop repara la base de datos?

No exactamente. El modo mantenimiento solo oculta los errores a los visitantes. Para reparar, debes usar las herramientas descritas en esta guía.

¿Qué hago si no puedo acceder al back office de PrestaShop?

Accede directamente a la base de datos vía phpMyAdmin o SSH. No necesitas el back office para reparar.

¿Cuánto tiempo tarda una reparación?

Depende del tamaño de la base de datos. Una tabla pequeña se repara en segundos; una base de datos de varios GB puede tardar minutos u horas.

¿Syspanel (HestiaCP) tiene herramientas para reparar MySQL?

Sí. Desde Syspanel (puerto 2106) puedes acceder a phpMyAdmin o a la sección Base de datos para ejecutar reparaciones. También puedes programar backups automáticos.

¿Debo contratar a un experto si no sé de comandos?

Si no te sientes cómodo con la línea de comandos, contrata a un técnico de hosting. Pero esta guía está diseñada para que cualquier persona con paciencia pueda seguirla.


Conclusión: Recupera tu tienda PrestaShop paso a paso

La corrupción de una base de datos MySQL en PrestaShop puede ser aterradora, pero con las herramientas adecuadas y un poco de paciencia, casi siempre puedes reparar base de datos y recuperar tu tienda. Recuerda:

  1. Siempre haz backup antes de cualquier intento de reparación.
  2. Empieza por métodos automáticos (phpMyAdmin, mysqlcheck).
  3. Si falla, prueba comandos manuales (REPAIR TABLE, --use-frm).
  4. Como último recurso, restaura desde un backup.
  5. Implementa medidas preventivas para evitar que vuelva a ocurrir.

Si después de todo esto sigues teniendo problemas, contacta con tu proveedor de hosting o un desarrollador especializado en PrestaShop. ¡Tu tienda merece estar en línea y funcionando!

[TIP] Guarda esta guía en tus favoritos. Te será útil más de una vez.

¿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