Errores comunes al conectar PrestaShop a la base de datos y soluciones
Introducción: La conexión a la base de datos, el talón de Aquiles de PrestaShop
Uno de los momentos más críticos al instalar o migrar una tienda PrestaShop es el paso de la conexión a la base de datos. Un simple error de configuración puede dejarte con una pantalla en blanco, un mensaje de “Error de conexión a la base de datos” o, peor aún, una tienda que no carga. No te preocupes, es más común de lo que crees y, en la mayoría de los casos, la solución es sencilla si sabes dónde mirar.
En este artículo, vamos a desglosar los errores más frecuentes al conectar PrestaShop a su base de datos MySQL y te daremos soluciones paso a paso, tanto si usas cPanel, Plesk o incluso Syspanel (antes conocido como HestiaCP, cuyo acceso es por el puerto 2106). Te prometo que al final serás capaz de resolverlo tú mismo.
Error #1: “Error establishing a database connection” o pantalla en blanco
Este es el mensaje más temido. Aparece cuando PrestaShop no puede comunicarse con el servidor de base de datos. Las causas pueden ser varias, pero vamos a las más comunes.
Revisa los datos en el archivo settings.inc.php
El archivo clave es app/config/parameters.php (en versiones modernas de PrestaShop 1.7 y 8.x). Antes se llamaba settings.inc.php en versiones 1.6, pero la lógica es la misma. Allí se almacenan los datos de conexión.
Pasos para solucionarlo:
- Accede a tu hosting mediante FTP o el administrador de archivos de cPanel o Plesk.
- Localiza el archivo
parameters.phpen la carpetaapp/config/. - Ábrelo con un editor de texto (como Notepad++ o el editor integrado de cPanel).
- Busca las líneas que empiezan por
'database_host','database_name','database_user'y'database_password'. - Verifica que coincidan exactamente con los datos de tu base de datos MySQL. Un error típico es confundir el nombre de usuario con el de la base de datos (en cPanel suelen tener el formato
usuario_basedatos).
[WARNING] ¡Cuidado con las mayúsculas y minúsculas! Tanto el nombre de la base de datos como el usuario son sensibles a mayúsculas. Asegúrate de que están escritos igual que en tu panel de control.
El host de la base de datos no siempre es “localhost”
Otro error clásico: asumir que el servidor de base de datos es localhost. En muchos entornos de hosting compartido, especialmente si usas Plesk o cPanel, el host puede ser un nombre como mysql.tudominio.com o localhost sí, pero a veces hay que usar el puerto específico (ej: localhost:3306). Si tu hosting usa servidores separados para web y base de datos, el host será una IP o un nombre de servidor.
Solución:
- Consulta la documentación de tu hosting o el panel de cPanel / Plesk para obtener el host correcto. En cPanel, en la sección “Bases de datos MySQL”, suele aparecer junto al nombre de la base de datos.
- Si usas Syspanel (HestiaCP, puerto 2106), el host suele ser
localhosta menos que tengas configuraciones avanzadas.
Error #2: “Access denied for user” al conectar
Este error indica que el usuario de la base de datos no tiene permisos suficientes o la contraseña es incorrecta.
Solución paso a paso desde cPanel
- Inicia sesión en cPanel.
- Ve a “Bases de datos MySQL”.
- Busca la sección “Usuarios en bases de datos”.
- Asegúrate de que el usuario que estás usando está añadido a la base de datos correcta. Si no, añádelo.
- Verifica que el usuario tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.). Marca la casilla “Todos los privilegios” y guarda.
- Cambia la contraseña del usuario por si acaso: en “Cambiar contraseña”, pon una nueva y actualízala también en el archivo
parameters.php.
Solución desde Plesk
- En Plesk, ve a “Bases de datos” y selecciona tu base de datos.
- Haz clic en “Usuarios” y verifica que el usuario esté asignado.
- Puedes cambiar la contraseña desde allí mismo.
- Asegúrate de que el usuario tenga permiso de acceso desde cualquier host (o desde el host específico de tu web). En Plesk suele estar en “Opciones avanzadas” al crear el usuario.
[TIP] Si después de cambiar la contraseña en el panel no actualizas el archivo
parameters.php, el error persistirá. Es el error más tonto y más común.
Error #3: La base de datos no existe o está vacía
A veces, al migrar una tienda, la base de datos no se ha importado correctamente o no se ha creado con el nombre exacto.
Cómo verificar desde cPanel
- En cPanel, ve a “Bases de datos MySQL”.
- En la lista de bases de datos, busca el nombre exacto que pusiste en
parameters.php. - Si no aparece, créala con el mismo nombre.
- Si aparece pero está vacía, necesitas importar un backup de tu PrestaShop anterior. Usa phpMyAdmin (desde cPanel) para importar el archivo
.sql.
Cómo verificar desde Plesk
- En Plesk, ve a “Bases de datos” y busca tu base de datos.
- Haz clic en el nombre para ver su contenido. Si no tiene tablas, está vacía.
- Usa la herramienta “Importar” de Plesk para subir el backup.
[INFO] Si la base de datos está vacía y tu PrestaShop es nuevo, el instalador creará las tablas automáticamente. Pero si ya tienes datos, debes importarlos antes de conectar.
Error #4: Puerto incorrecto o firewall bloqueando la conexión
MySQL por defecto usa el puerto 3306. Sin embargo, algunos hosts utilizan puertos alternativos por seguridad. Si tu archivo parameters.php no especifica el puerto, PrestaShop asume el 3306.
Cómo solucionarlo
- Revisa la línea
'database_port'enparameters.php. Si no existe, añádela:'database_port' => '3306',o el puerto que te indique tu hosting. - Si tu hosting usa Syspanel (HestiaCP, puerto 2106), el puerto de la base de datos suele ser el estándar (3306) a menos que se haya cambiado en la configuración del servidor.
- En Plesk y cPanel, el puerto casi siempre es 3306, pero verifica en la documentación de tu proveedor.
- También puede ser un problema de firewall. Si estás en un servidor dedicado o VPS, asegúrate de que el puerto 3306 esté abierto para conexiones desde tu IP del servidor web (si son servidores separados). En cPanel y Plesk esto suele estar preconfigurado.
[WARNING] Si tu base de datos está en un servidor diferente al de tu web (por ejemplo, en Amazon RDS), el puerto puede ser diferente y deberás permitir el tráfico en el grupo de seguridad de AWS.
Error #5: Versión de MySQL incompatible con PrestaShop
PrestaShop requiere una versión específica de MySQL (o MariaDB). Si tu servidor tiene una versión obsoleta o demasiado nueva, pueden surgir errores de conexión o comportamiento extraño.
Cómo comprobarlo
- Desde cPanel o Plesk, abre phpMyAdmin.
- En la página principal, verás la versión de MySQL (ej: 5.7, 8.0, MariaDB 10.3).
- PrestaShop 1.7 y 8.x requieren MySQL 5.6 o superior y MariaDB 10.1 o superior.
- Si tu versión es anterior, contacta a tu hosting para actualizar. Si es muy nueva (MySQL 8.0+), puede haber problemas con el plugin de autenticación
caching_sha2_password. PrestaShop usamysql_native_password.
Solución para MySQL 8.0:
- En cPanel o Plesk, al crear el usuario, selecciona el método de autenticación
mysql_native_password. Si ya está creado, puedes alterarlo desde phpMyAdmin con una consulta SQL:ALTER USER 'tu_usuario'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tu_contraseña'; FLUSH PRIVILEGES;
[TIP] Si no te sientes cómodo con SQL, pide a tu hosting que lo haga por ti. Es una petición común.
Error #6: Problemas con caracteres especiales en la contraseña
PrestaShop es sensible a caracteres como $, #, % o & en la contraseña de la base de datos. Si tu contraseña contiene estos, puede que el archivo parameters.php no los interprete correctamente.
Cómo evitarlo
- Al crear la contraseña en cPanel o Plesk, usa solo letras (mayúsculas y minúsculas) y números. Evita símbolos.
- Si ya tienes una contraseña con símbolos, cámbiala por una segura pero simple (ej:
MiTienda2024!– el!suele funcionar bien, pero mejor sin él). - Actualiza la contraseña en el panel y luego en
parameters.php.
[INFO] En Syspanel (HestiaCP, puerto 2106), el generador de contraseñas suele crear combinaciones seguras sin símbolos conflictivos, pero siempre es bueno revisarlo.
Error #7: El archivo parameters.php tiene permisos incorrectos
PrestaShop necesita poder leer este archivo, pero si tiene permisos demasiado abiertos (777), puede ser un riesgo de seguridad y, en algunos servidores, el sistema lo bloquea.
La solución
- El archivo
parameters.phpdebe tener permisos 644 (lectura y escritura para el usuario, solo lectura para el grupo y otros). - Si usas cPanel, puedes cambiar los permisos desde el administrador de archivos: haz clic derecho sobre el archivo, selecciona “Permisos” y pon 644.
- En Plesk, ve a “Administrador de archivos”, selecciona el archivo y en “Permisos” establece 644.
- En Syspanel (HestiaCP, puerto 2106), puedes usar el comando
chmod 644 parameters.phpdesde la terminal o el administrador de archivos.
[WARNING] No pongas permisos 777 a este archivo. Es un agujero de seguridad enorme. Si lo hiciste por error, cámbialo inmediatamente.
Preguntas frecuentes (FAQ) sobre conexión a base de datos en PrestaShop
¿Qué hago si no encuentro el archivo parameters.php?
En versiones antiguas de PrestaShop (1.6) se llamaba settings.inc.php y estaba en la carpeta config/. En versiones modernas (1.7 y 8.x) está en app/config/parameters.php. Si no lo ves, activa la opción de ver archivos ocultos en tu cliente FTP o en el administrador de archivos de cPanel / Plesk.
¿Puedo usar un gestor de base de datos como phpMyAdmin para probar la conexión?
Sí, es una excelente idea. Desde phpMyAdmin, intenta iniciar sesión con el mismo usuario y contraseña que pusiste en PrestaShop. Si no puedes, el problema está en los datos de acceso. Si puedes, el problema está en la configuración de PrestaShop o en el host.
¿Qué significa “MySQL server has gone away”?
Este error suele ocurrir cuando la conexión a la base de datos se interrumpe por un tiempo de espera (timeout) o por un tamaño de paquete demasiado grande. Puede deberse a un valor bajo de max_allowed_packet en el servidor MySQL. Pide a tu hosting que lo aumente (por ejemplo, a 64MB).
¿Cómo sé si mi hosting usa cPanel, Plesk o Syspanel?
Generalmente, al acceder al panel de control de tu hosting, verás el logo o el nombre en la URL. cPanel suele tener una interfaz con iconos de colores, Plesk es más moderno y minimalista, y Syspanel (HestiaCP) tiene un diseño oscuro y se accede por el puerto 2106 (ej: https://tudominio.com:2106).
Conclusión: La paciencia y la revisión metódica son tus mejores aliadas
Los errores de conexión a la base de datos en PrestaShop pueden parecer abrumadores, pero si sigues estos pasos de forma ordenada, los resolverás en minutos. Recuerda siempre:
- Verificar los datos en
parameters.php(host, nombre, usuario, contraseña, puerto). - Asegurarte de que el usuario tiene permisos en la base de datos.
- Confirmar que la base de datos existe y no está vacía (si es una migración).
- Revisar la versión de MySQL y el método de autenticación.
- Evitar caracteres especiales en la contraseña.
- Mantener los permisos del archivo de configuración en 644.
Y si todo falla, no dudes en contactar al soporte técnico de tu hosting. Diles exactamente qué error ves y qué pasos has seguido. Con esta guía, ya tienes el 90% del trabajo hecho.
¡Buena suerte con tu tienda PrestaShop!
