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

Resolución de errores comunes en bases de datos de PrestaShop

Actualizado el 24 de noviembre de 2025

¡Hola! Soy tu asistente técnico. Si estás aquí, probablemente tu tienda PrestaShop esté dando algún error relacionado con la base de datos. No te preocupes, es una de las consultas más frecuentes que recibimos. En esta guía completa, vamos a desglosar los errores más comunes en la base de datos de PrestaShop, entender por qué ocurren y, lo más importante, cómo solucionarlos paso a paso.

Vamos a utilizar términos sencillos y comandos básicos de MySQL. Incluso si nunca has tocado una base de datos, podrás seguir estas instrucciones. Recuerda que trabajar con la base de datos es delicado, así que siempre, siempre, haz una copia de seguridad antes de empezar.


Error 1: "Error de conexión a la base de datos" o "Cannot connect to database"

Este es, con diferencia, el error más aterrador. Ves tu tienda en blanco o con un mensaje de que no puede conectar. La causa suele ser que los datos de acceso a la base de datos han cambiado o son incorrectos.

¿Por qué ocurre?

  • Cambiaste la contraseña de la base de datos desde el panel de control (como Syspanel).
  • Moviste tu tienda a un nuevo servidor y olvidaste actualizar el archivo de configuración.
  • El servidor MySQL se cayó o está sobrecargado.

Solución paso a paso

  1. Localiza el archivo de configuración.
    Conéctate a tu hosting por FTP (FileZilla, por ejemplo) o al administrador de archivos de Syspanel (puerto 2106). Navega hasta la carpeta raíz de tu PrestaShop y busca el archivo app/config/parameters.php.

  2. Edita el archivo.
    Ábrelo con un editor de texto (Bloc de notas, Sublime Text). Busca estas líneas:

    'database_host' => 'localhost',
    'database_name' => 'nombre_de_tu_bd',
    'database_user' => 'usuario_de_tu_bd',
    'database_password' => 'contraseña_de_tu_bd',
    
  3. Verifica los datos.
    Asegúrate de que el database_name, database_user y database_password coincidan EXACTAMENTE con los que tienes en tu panel de control (por ejemplo, en Syspanel > Base de datos). El database_host suele ser localhost, pero a veces es una IP o un nombre de servidor como mysql.tudominio.com.

  4. Guarda y prueba.
    Guarda los cambios y recarga tu tienda. Si el error persiste, el problema puede ser del servidor. Contacta a tu proveedor de hosting.

[WARNING] Nunca uses caracteres especiales como ', " o \ en las contraseñas de la base de datos, ya que pueden romper la sintaxis del archivo PHP.


Error 2: "Table 'ps_product' doesn't exist" o "Tabla no encontrada"

Este error indica que una tabla específica de la base de datos ha desaparecido o está corrupta. Es común después de una actualización fallida de PrestaShop, de un módulo o de una restauración incompleta.

¿Por qué ocurre?

  • Una actualización de PrestaShop no se completó correctamente.
  • Un módulo malicioso o incompatible eliminó tablas.
  • La base de datos sufrió un crash y perdió datos.

Solución paso a paso

  1. Identifica la tabla faltante.
    El mensaje de error te dirá exactamente qué tabla falta (ej. ps_product, ps_category, ps_customer). El prefijo ps_ puede ser diferente si lo cambiaste al instalar.

  2. Accede a tu base de datos.
    Puedes hacerlo desde Syspanel (puerto 2106) > "phpMyAdmin" o desde la terminal con el comando:

    mysql -u usuario -p
    

    Luego selecciona tu base de datos:

    USE nombre_de_tu_base_de_datos;
    
  3. Revisa el motor de almacenamiento.
    Ejecuta este comando para ver todas las tablas:

    SHOW TABLES LIKE 'ps_%';
    

    Si la tabla no aparece, está perdida.

  4. Opción A: Recuperar desde una copia de seguridad (RECOMENDADA).
    Si tienes un backup reciente, restaura la tabla específica. Desde phpMyAdmin, importa el archivo SQL de tu backup. Si solo tienes el backup completo, puedes extraer la tabla con un editor de texto buscando CREATE TABLE ps_product.

  5. Opción B: Regenerar la tabla (si no tienes backup).
    Si no tienes backup, puedes intentar regenerar la estructura de la tabla desde la instalación original de PrestaShop. Descarga la misma versión de PrestaShop, busca el archivo install/sql/install.sql y extrae la parte que crea la tabla faltante. Luego ejecuta ese SQL en tu base de datos. Esto solo recupera la estructura, no los datos.

[INFO] Si el error es recurrente, puede que tu base de datos esté usando el motor MyISAM que es propenso a corrupción. Considera migrar a InnoDB (más robusto) consultando a tu hosting.


Error 3: "MySQL server has gone away"

Este es un error clásico de tiempo de espera. El servidor de base de datos cierra la conexión porque la consulta tardó demasiado o porque el paquete de datos era demasiado grande.

¿Por qué ocurre?

  • Estás importando un archivo SQL muy grande (ej. una copia de seguridad de varios GB).
  • Un módulo está realizando una consulta muy pesada (ej. generar un sitemap con 50,000 productos).
  • El límite max_allowed_packet en el servidor MySQL es muy bajo.

Solución paso a paso

  1. Aumenta el tiempo de ejecución de PHP (si estás en un script).
    Si el error ocurre al importar desde la interfaz de PrestaShop, edita el archivo php.ini (o pide a tu hosting que lo haga) y aumenta:

    max_execution_time = 600
    memory_limit = 512M
    
  2. Importa el SQL por partes.
    Si estás importando un backup, no uses la interfaz web de phpMyAdmin para archivos grandes. Mejor usa la terminal:

    mysql -u usuario -p nombre_bd < archivo_grande.sql
    

    O divide el archivo SQL en partes más pequeñas (ej. con split en Linux).

  3. Aumenta el límite de paquete en MySQL (si tienes acceso).
    Conéctate a MySQL como root y ejecuta:

    SET GLOBAL max_allowed_packet=268435456; -- 256MB
    

    Luego, para que sea permanente, edita el archivo my.cnf (normalmente en /etc/mysql/) y añade:

    [mysqld]
    max_allowed_packet=256M
    

[TIP] Si usas Syspanel, puedes gestionar las bases de datos y acceder a phpMyAdmin desde el panel (puerto 2106) para hacer estas comprobaciones sin necesidad de terminal.


Error 4: "Duplicate entry 'X' for key 'PRIMARY'" al importar datos

Este error ocurre cuando intentas insertar un registro con una clave primaria (ID) que ya existe. Es muy común al restaurar copias de seguridad parciales o al migrar datos.

¿Por qué ocurre?

  • Estás importando un archivo SQL que contiene datos que ya están en la base de datos.
  • Los IDs de los productos/clientes se duplicaron por una mala sincronización.

Solución paso a paso

  1. Identifica la tabla y la clave duplicada.
    El mensaje de error te dirá algo como: Duplicate entry '123' for key 'PRIMARY' en la tabla ps_product.

  2. Opción 1: Elimina los duplicados existentes.
    Conéctate a tu base de datos y ejecuta:

    DELETE FROM ps_product WHERE id_product = 123;
    

    Luego vuelve a ejecutar la importación.

  3. Opción 2: Usa REPLACE en lugar de INSERT.
    Si estás editando el archivo SQL manualmente, cambia INSERT INTO por REPLACE INTO. Esto reemplazará el registro existente por el nuevo. Cuidado: esto sobrescribe datos.

  4. Opción 3: Ignora los duplicados (solo si sabes que los datos son iguales).
    En el comando de importación, añade la opción --force o --ignore:

    mysql -u usuario -p --force nombre_bd < archivo.sql
    

[WARNING] No uses DELETE sin un WHERE. Si ejecutas DELETE FROM ps_product, borrarás TODOS los productos de tu tienda.


Error 5: "Out of memory" o "Allowed memory size exhausted"

Este error no es directamente de la base de datos, pero suele aparecer cuando PrestaShop intenta cargar muchos datos de la BD y PHP se queda sin memoria.

¿Por qué ocurre?

  • Tienes demasiados productos, categorías o clientes y el servidor tiene poca RAM.
  • Un módulo está mal optimizado y carga toda la base de datos en memoria.
  • El límite de memoria de PHP es muy bajo.

Solución paso a paso

  1. Aumenta la memoria de PHP.
    Edita el archivo php.ini o crea un archivo php.ini en la raíz de tu PrestaShop con:

    memory_limit = 256M
    

    Si no puedes, pide a tu hosting que lo haga.

  2. Optimiza las consultas de la base de datos.
    Desde phpMyAdmin o terminal, ejecuta este comando para optimizar todas las tablas:

    OPTIMIZE TABLE ps_product, ps_category, ps_customer;
    

    Esto libera espacio y reorganiza los datos.

  3. Desactiva módulos pesados.
    Ve a tu panel de administración de PrestaShop > Módulos y Servicios. Desactiva temporalmente módulos que no uses o que sospeches que consumen mucha memoria (ej. módulos de comparación de productos, búsqueda avanzada).

  4. Revisa el tamaño de la base de datos.
    Si tu base de datos supera los 2GB, considera hacer una limpieza de logs y tablas temporales. PrestaShop tiene una opción en Parámetros de la tienda > Rendimiento > "Limpiar la caché" y "Optimizar la base de datos".


Preguntas Frecuentes (FAQ)

¿Cómo se si mi base de datos está corrupta?

Ejecuta desde phpMyAdmin o terminal:

CHECK TABLE ps_product;

Si devuelve "OK", está bien. Si devuelve "Error" o "Corrupt", necesitas repararla:

REPAIR TABLE ps_product;

¿Debo usar MyISAM o InnoDB?

InnoDB siempre. Es más fiable, soporta transacciones y no se corrompe tan fácilmente. PrestaShop moderno usa InnoDB por defecto.

¿Puedo acceder a la base de datos desde Syspanel?

Sí. Desde Syspanel (puerto 2106) tienes acceso a phpMyAdmin, donde puedes ver, editar y reparar tu base de datos de forma gráfica. Es la herramienta más amigable para no expertos.

¿Qué hago si después de todo esto el error persiste?

Puede ser un problema del servidor. Contacta a tu hosting. Si usas Syspanel, revisa los logs del servidor desde el panel (puerto 2106) > "Logs" para ver errores más detallados.


Consejo Final: La Copia de Seguridad es tu Mejor Amiga

Nunca está de más repetirlo: haz copias de seguridad periódicas de tu base de datos de PrestaShop. Desde Syspanel (puerto 2106) puedes programar backups automáticos diarios o semanales. Si algo sale mal, restaurar una copia de seguridad es siempre la solución más rápida y segura.

Espero que esta guía te haya sido de gran ayuda. Si tienes dudas más específicas, no dudes en consultar. ¡Tu tienda online volverá a funcionar en poco tiempo!

¿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