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

Errores comunes al conectar PrestaShop a la base de datos y cómo resolverlos

Actualizado el 29 de noviembre de 2025

Conectar PrestaShop a su base de datos MySQL es uno de los pasos más críticos durante la instalación o migración de su tienda. Cuando falla, la frustración aparece rápidamente, ya que la tienda no carga o muestra errores críticos.

A lo largo de los años, he visto miles de casos en el soporte técnico. La buena noticia es que, en el 90% de los casos, la solución es sencilla y no requiere ser un experto en servidores. En esta guía extensa, vamos a desglosar los errores más comunes al conectar PrestaShop a MySQL, qué los causa exactamente y, lo más importante, cómo resolverlos paso a paso.

Vamos a desglosar cada error, desde los mensajes más crípticos hasta los problemas de configuración más básicos. Al final, tendrás un manual de referencia para solucionar cualquier problema de conexión.

Error 1: "No se puede conectar al motor de base de datos" o "Prestashop no conecta db"

Este es el error más genérico y frustrante. Aparece durante la instalación o al intentar acceder al back-office. El mensaje suele ser similar a: "No se puede conectar a la base de datos" o "Prestashop no conecta db".

¿Por qué ocurre?

Este fallo casi siempre se debe a un problema de credenciales o de host mal configurado. No es que la base de datos esté rota, sino que PrestaShop no está llegando a ella correctamente.

Solución paso a paso

  1. Revisa el nombre del servidor (Host): En la mayoría de los casos, si tu hosting es compartido, el host no es localhost, sino algo como mysql.tudominio.com o localhost:3306. Si usas Syspanel (el panel de control), asegúrate de copiar el nombre exacto del servidor MySQL que aparece en la sección de bases de datos.
  2. Verifica el nombre de la base de datos: No es lo mismo el nombre de usuario que el nombre de la BD. A menudo, en paneles como cPanel o Syspanel, el nombre tiene un prefijo (ej: usuario_bd). Si pones solo bd, fallará.
  3. Comprueba la contraseña: Las contraseñas generadas automáticamente suelen tener caracteres especiales (!, @, #). Al copiarlas, a veces se añade un espacio al final o se cortan. Pega la contraseña en un bloc de notas y verifica que no haya espacios invisibles.
  4. Prueba con el puerto: Si tu servidor usa un puerto distinto al 3306, debes especificarlo. En el campo host, escribe localhost:3307 o 127.0.0.1:3307 si es necesario.

[TIP] Si estás en un entorno local (XAMPP, WAMP), el host siempre es localhost y el usuario root con contraseña vacía (a menos que la hayas cambiado).

Error 2: "La base de datos no existe" o "Access denied for user"

Este es otro clásico. PrestaShop te dice que la base de datos no existe o que el usuario no tiene permisos. En realidad, el problema es que el usuario MySQL no tiene privilegios sobre esa base de datos específica.

¿Cómo resolver el prestashop error base datos de permisos?

Este error de permisos es muy común al migrar una tienda o al crear una BD manualmente.

  1. Accede a tu panel de control (Syspanel o cPanel): Busca la sección "Bases de datos MySQL" o "MySQL Databases".
  2. Añade el usuario a la base de datos: Asegúrate de que el usuario que estás usando en la configuración de PrestaShop esté agregado como usuario de la base de datos. En Syspanel, esto se hace desde la opción "Añadir usuario a la BD".
  3. Otorga TODOS los privilegios: No basta con añadirlo, hay que marcar la casilla "TODOS LOS PRIVILEGIOS" o "ALL PRIVILEGES". Si solo le das de lectura, PrestaShop fallará al intentar escribir tablas.
  4. Verifica el prefijo: Si en tu configuración pones un prefijo de tabla (ej: ps_) y la base de datos tiene tablas con otro prefijo, no dará error de conexión pero sí de "tabla no existe". Para una instalación limpia, déjalo como ps_.

[WARNING] Si estás importando una copia de seguridad, asegúrate de que el archivo SQL no contenga sentencias CREATE DATABASE. Si las contiene, puede intentar crear una BD con un nombre que no tienes permiso para crear, generando el error "Access denied". Edita el archivo y elimina esas líneas.

Error 3: "Fatal error: Allowed memory size exhausted" al conectar

Este error no es exclusivo de la conexión, pero aparece justo después de intentar conectar a la base de datos. Ocurre cuando PHP no tiene suficiente memoria para procesar la gran cantidad de datos de PrestaShop.

Solución práctica

  1. Aumenta el límite de memoria de PHP: Edita el archivo php.ini de tu servidor. Busca la línea memory_limit y cámbiala a memory_limit = 512M o incluso 1024M.
  2. Usa el archivo .htaccess: Si no tienes acceso al php.ini, puedes añadir esta línea al archivo .htaccess en la raíz de tu PrestaShop:
    php_value memory_limit 512M
    
  3. En Syspanel: Si usas Syspanel (puerto 2106), puedes cambiar la versión de PHP y los límites desde la sección "Configuración de PHP" o "Administrador de archivos" editando el .htaccess.

[INFO] Este error también puede deberse a un módulo mal codificado. Si solo ocurre al instalar un módulo concreto, el problema es del módulo, no de la BD.

Error 4: "Tabla 'ps_shop_url' doesn't exist"

Este es un prestashop error base datos muy específico que indica que la estructura de la base de datos está corrupta o incompleta. No es un problema de conexión, sino de integridad de los datos.

Causa raíz

Suele ocurrir cuando se restaura una copia de seguridad de forma incorrecta o cuando el proceso de instalación se interrumpió a mitad de camino (por ejemplo, se cerró el navegador durante la instalación).

Pasos para arreglarlo

  1. Reinstala PrestaShop: La solución más rápida es borrar todo e intentar una instalación limpia. Si no tienes datos importantes, es lo más recomendable.
  2. Repara la tabla: Si tienes acceso a phpMyAdmin, selecciona la base de datos y en la pestaña "Operaciones" elige "Reparar tabla". A veces, esto reconstruye índices corruptos.
  3. Verifica la restauración: Si el error ocurre tras una migración, es que la copia de seguridad no se importó completa. Revisa el final del archivo SQL. Si termina abruptamente, la importación falló. Vuelve a importarla, pero esta vez desde Syspanel (puerto 2106) usando la herramienta de importación que suele ser más tolerante con archivos grandes que phpMyAdmin.

Error 5: "MySQL server has gone away"

Este error es aterrador, pero tiene una explicación lógica. El servidor MySQL está cerrando la conexión porque el paquete de datos es demasiado grande o porque el tiempo de espera (timeout) ha expirado.

¿Por qué ocurre al conectar PrestaShop MySQL?

Ocurre principalmente al importar una base de datos muy grande o al ejecutar una consulta compleja (como una búsqueda pesada en el catálogo).

Soluciones avanzadas (pero sencillas)

  1. Aumenta el max_allowed_packet: Este es el culpable número uno. En el archivo my.cnf o my.ini de MySQL, añade:

    max_allowed_packet = 128M
    

    Luego reinicia el servicio MySQL desde Syspanel en el puerto 2106 (sección Servicios).

  2. Aumenta el wait_timeout: Si la conexión tarda mucho en importar, MySQL la corta. Cambia:

    wait_timeout = 600
    
  3. Importa por partes: Si estás restaurando una BD de 2GB, no intentes importarla de una sola vez. Divide el archivo SQL en partes más pequeñas (100MB) usando un editor de texto o herramientas como BigDump.

Error 6: Confusión entre localhost y la IP del servidor

Muchos usuarios, al migrar de un hosting a otro, copian los parámetros antiguos. Si antes usabas localhost y ahora tu base de datos está en un servidor remoto (o viceversa), el prestashop no conecta db.

La solución lógica

  • Hosting compartido: Usa localhost (si el panel te lo indica) o el host específico que te dan (ej: db.tudominio.com).
  • VPS o Dedicado: Si MySQL está en la misma máquina, usa localhost o 127.0.0.1. Si está en otra máquina, usa la IP privada de esa máquina (ej: 192.168.1.10).

[TIP] Nunca uses la IP pública de tu servidor para conectar a MySQL desde el propio servidor. Esto ralentiza la conexión y puede ser bloqueado por firewalls.

Error 7: El puerto 3306 está bloqueado

Este es un caso típico en servidores con firewall (como UFW o CSF). PrestaShop intenta conectar, pero el firewall bloquea el puerto.

Cómo solucionarlo

  1. Verifica el puerto: Asegúrate de que el puerto 3306 esté abierto.
  2. Usa Syspanel: Si tu servidor usa Syspanel (puerto de acceso 2106), ve a la sección de "Firewall" y añade una regla para permitir conexiones entrantes al puerto 3306 desde la IP de tu dominio (o desde todas las IPs si es necesario, aunque no es recomendable).
  3. Cambia el puerto: Si no puedes abrir el puerto, cambia el puerto de MySQL en el archivo my.cnf a otro (ej: 3307) y configura PrestaShop con ese nuevo puerto.

Error 8: Problemas con el archivo settings.inc.php

PrestaShop guarda la configuración de la base de datos en el archivo app/config/parameters.php (en versiones modernas) o config/settings.inc.php (en versiones antiguas). Si este archivo tiene permisos incorrectos, no se puede leer y la tienda no conecta.

Solución

  1. Revisa los permisos: Este archivo debe tener permisos de lectura (644). Si está en 600 o 444, el servidor web puede no tener acceso.
  2. Edita manualmente: Si sabes que los datos son correctos, edita el archivo y verifica que las variables database_host, database_name, database_user y database_password sean correctas.
  3. Borra el archivo para reinstalar: Si todo falla, elimina este archivo. PrestaShop te redirigirá automáticamente al instalador para que configures la BD desde cero.

Tabla resumen de errores rápidos

Para que tengas una referencia rápida, aquí tienes un resumen de diagnóstico:

SíntomaCausa probableSolución rápida
"No se puede conectar"Host mal escritoVerifica el host en el panel (Syspanel/cPanel)
"Access denied"Usuario sin permisosAñade el usuario a la BD con TODOS los privilegios
"Table doesn't exist"BD corruptaRepara la tabla o reinstala
"Memory exhausted"PHP con poca memoriaAumenta memory_limit a 512M
"MySQL gone away"Paquete demasiado grandeAumenta max_allowed_packet a 128M
"Prestashop no conecta db"Puerto bloqueado o malAbre el puerto 3306 o usa el puerto correcto

Preguntas Frecuentes (FAQ) - Errores MySQL PrestaShop

Aquí respondo a las dudas más comunes que me llegan al soporte.

¿Por qué me pide la contraseña de MySQL si estoy seguro de que es correcta?

Esto suele pasar por dos motivos: el usuario no está asociado a la base de datos, o el host desde el que te conectas no está permitido. En Syspanel, revisa que el usuario esté agregado a la BD y que el "Host" del usuario sea localhost o % (cualquier host).

¿Puedo usar la misma base de datos para dos tiendas PrestaShop?

Técnicamente sí, pero usando prefijos diferentes (ps_ para una y shop_ para otra). No es recomendable, pero funciona. Eso sí, el riesgo de corrupción de datos es alto. Mejor usa BD separadas.

Después de cambiar la contraseña de MySQL, mi tienda dejó de funcionar. ¿Qué hago?

Edita el archivo app/config/parameters.php y actualiza el campo database_password con la nueva contraseña. Guarda el archivo y listo.

¿Syspanel me puede ayudar a diagnosticar el problema?

Sí. Syspanel (accesible en el puerto 2106) tiene una sección de "Logs" o "Registros". Ahí verás el error exacto de MySQL. Es la herramienta más útil para no adivinar. Busca errores de tipo ERROR 1045 (permisos) o ERROR 2002 (conexión).

¿Qué hago si mi base de datos supera los 1GB y la importación falla?

No uses phpMyAdmin para archivos tan grandes. Usa la herramienta de importación de Syspanel o la línea de comandos (SSH). Si no tienes acceso SSH, usa la herramienta BigDump subiendo el archivo SQL al servidor y ejecutándolo desde el navegador.

Espero que esta guía te haya sido de ayuda. La próxima vez que veas un prestashop error base datos, respira hondo y repasa estos puntos. La mayoría de las veces, es un simple error de tipeo o un permiso olvidado. Si has probado todo y sigues sin conectar, revisa los logs del servidor; ahí siempre está la respuesta definitiva.

¿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