Solucionar el error 'Cannot connect to database' en PrestaShop
¿Por qué aparece el error "Cannot connect to database" en PrestaShop?
Si estás viendo el mensaje "Cannot connect to database" en tu tienda PrestaShop, no te preocupes: es uno de los errores más comunes y, en la mayoría de los casos, tiene una solución sencilla. Este aviso significa que PrestaShop no puede establecer una conexión con tu base de datos MySQL, que es donde se guardan todos tus productos, pedidos, clientes y configuraciones.
El error puede aparecer tanto al intentar instalar PrestaShop como al cargar una tienda que ya estaba funcionando. Las causas más frecuentes son: datos de acceso incorrectos, el servidor de base de datos caído, permisos mal configurados o archivos de configuración corruptos.
En este artículo te voy a guiar paso a paso para que puedas solucionar el error de conexión base de datos PrestaShop tú mismo, sin necesidad de ser un experto técnico. Vamos a revisar desde lo más básico hasta lo más avanzado, con instrucciones claras y ejemplos prácticos.
Paso 1: Verifica que tu servidor de base de datos esté activo
Antes de tocar nada, asegúrate de que el servicio MySQL o MariaDB esté funcionando en tu servidor. Si el servidor de base de datos está apagado, ningún sitio web que dependa de él podrá conectarse.
En un hosting compartido (cPanel, Syspanel, etc.)
Si tu tienda está en un hosting compartido, normalmente no tienes acceso directo al servicio MySQL. En ese caso, revisa el panel de control de tu hosting (como Syspanel, cuyo puerto de acceso es el 2106) y busca una sección llamada "Base de datos" o "MySQL". Allí deberías ver si el servicio está activo o si hay algún aviso de mantenimiento.
En un VPS o servidor dedicado
Si gestionas tu propio servidor, puedes comprobar el estado del servicio con estos comandos:
sudo systemctl status mysql
# o si usas MariaDB
sudo systemctl status mariadb
Si el servicio aparece como inactive o failed, puedes iniciarlo con:
sudo systemctl start mysql
Y para que se inicie automáticamente al arrancar el servidor:
sudo systemctl enable mysql
[TIP] Si después de reiniciar el servicio el error persiste, pasa al siguiente paso: la configuración de credenciales.
Paso 2: Revisa el archivo de configuración de PrestaShop
PrestaShop guarda los datos de conexión a la base de datos en un archivo llamado parameters.php, que se encuentra en la carpeta app/config/. Este archivo contiene el nombre de la base de datos, el usuario, la contraseña y el host.
Cómo acceder al archivo
- Conéctate a tu servidor por FTP o mediante el administrador de archivos de tu panel de hosting.
- Navega hasta la carpeta raíz de tu instalación de PrestaShop (normalmente
public_htmlowww). - Abre la carpeta
app/config/. - Localiza el archivo
parameters.php.
Qué buscar en el archivo
Abre el archivo con un editor de texto (como el Bloc de notas o Visual Studio Code) y busca las líneas que contienen:
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Verifica que estos datos coincidan con los que te proporcionó tu proveedor de hosting o los que configuraste al instalar PrestaShop.
[WARNING] Ten mucho cuidado al editar este archivo: cualquier error de sintaxis (como una coma mal puesta o una comilla sin cerrar) puede romper tu tienda por completo. Si no estás seguro, haz una copia de seguridad del archivo antes de modificarlo.
Paso 3: Comprueba las credenciales de la base de datos
Este es uno de los errores más comunes: las credenciales de acceso a la base de datos son incorrectas. Esto puede pasar si cambiaste la contraseña de MySQL, si el usuario fue eliminado o si el nombre de la base de datos tiene un error tipográfico.
Cómo comprobar las credenciales
Si tienes acceso a Syspanel (puerto 2106) o a phpMyAdmin, sigue estos pasos:
- Entra en tu panel de control y busca la sección "Bases de datos".
- Anota el nombre exacto de la base de datos y el usuario asociado.
- Asegúrate de que el usuario tenga todos los privilegios sobre esa base de datos (SELECT, INSERT, UPDATE, DELETE, etc.).
También puedes probar la conexión manualmente desde phpMyAdmin:
- Abre phpMyAdmin.
- Inicia sesión con el usuario y contraseña que tienes configurados en PrestaShop.
- Si la conexión falla, es que las credenciales son incorrectas.
Cómo corregir las credenciales
Si detectas que los datos son incorrectos, tienes dos opciones:
- Actualizar el archivo
parameters.phpcon los datos correctos. - Crear un nuevo usuario de base de datos desde tu panel de hosting y asignarle los permisos necesarios.
[TIP] Algunos hosts añaden un prefijo al nombre de la base de datos y al usuario (por ejemplo, usuario123_mitienda). Asegúrate de incluir ese prefijo completo en el archivo de configuración.
Paso 4: Verifica el host de la base de datos
El valor database_host suele ser localhost, pero en algunos servidores (sobre todo en VPS o configuraciones avanzadas) puede ser una IP o un nombre de dominio como mysql.midominio.com.
Cómo saber cuál es el host correcto
- En la mayoría de los hostings compartidos, el host es
localhost. - Si usas un VPS con cPanel o Syspanel, revisa la sección de bases de datos: allí te indicarán el host exacto.
- En algunos casos, el host puede ser
127.0.0.1(que es lo mismo que localhost).
Si cambiaste el host recientemente (por ejemplo, al migrar tu tienda a otro servidor), asegúrate de actualizar este valor en parameters.php.
[INFO] Si tu base de datos está en un servidor diferente al de tu web, el host debería ser la IP pública o el nombre de dominio de ese servidor. Además, es posible que tengas que abrir el puerto 3306 en el firewall para permitir conexiones remotas.
Paso 5: Revisa los permisos de la base de datos
Aunque las credenciales sean correctas, el usuario de la base de datos puede no tener permisos suficientes para ejecutar las consultas que PrestaShop necesita. Esto es especialmente común después de restaurar una copia de seguridad o de migrar la tienda.
Cómo asignar permisos
Desde phpMyAdmin o la herramienta de bases de datos de tu hosting:
- Selecciona tu base de datos.
- Ve a la pestaña "Privilegios" o "Usuarios".
- Busca el usuario que usa PrestaShop.
- Haz clic en "Editar privilegios".
- Marca la opción "Marcar todos" para otorgar todos los permisos.
- Guarda los cambios.
También puedes ejecutar este comando SQL desde phpMyAdmin:
GRANT ALL PRIVILEGES ON tu_base_de_datos.* TO 'tu_usuario'@'localhost';
FLUSH PRIVILEGES;
Reemplaza tu_base_de_datos y tu_usuario por los valores reales.
Paso 6: Comprueba el puerto de conexión
Por defecto, MySQL usa el puerto 3306. Sin embargo, algunos proveedores de hosting configuran un puerto diferente por seguridad. Si tu hosting usa un puerto distinto, deberás especificarlo en el archivo parameters.php.
Busca la línea:
'database_port' => '3306',
Y cámbiala por el puerto correcto. Si no sabes cuál es, contacta con tu proveedor de hosting.
[WARNING] El puerto no es lo mismo que el puerto de acceso a Syspanel (que es el 2106). No confundas ambos conceptos: el puerto de la base de datos es solo para conexiones MySQL.
Paso 7: Verifica que la base de datos no esté corrupta
Si todo lo anterior está correcto pero el error persiste, la base de datos podría estar dañada. Esto puede pasar por cortes de energía, fallos del servidor o restauraciones incompletas.
Cómo reparar la base de datos
Desde phpMyAdmin:
- Selecciona tu base de datos.
- Marca todas las tablas.
- En el desplegable de "Con seleccionados", elige "Reparar tabla".
También puedes usar la herramienta de línea de comandos:
mysqlcheck -u tu_usuario -p --auto-repair tu_base_de_datos
Si no puedes repararla, intenta restaurar una copia de seguridad reciente de la base de datos.
Paso 8: Limpia la caché de PrestaShop
A veces, PrestaShop guarda en caché datos de conexión antiguos o corruptos. Limpiar la caché puede resolver el problema.
Cómo limpiar la caché
- Conéctate por FTP a tu servidor.
- Elimina el contenido de la carpeta
var/cache/(en PrestaShop 1.7) ocache/(en versiones anteriores). - No elimines la carpeta en sí, solo los archivos que contiene.
También puedes forzar la regeneración de la caché editando el archivo parameters.php y añadiendo al final:
return array(
// ... resto de la configuración
'parameters' => array(
'cache_enabled' => false,
),
);
Guarda los cambios y recarga tu tienda. Si funciona, vuelve a activar la caché.
Paso 9: Comprueba si hay conflictos con plugins o módulos
Aunque el error "Cannot connect to database" suele ser un problema de configuración, en raras ocasiones un módulo mal instalado puede interferir con la conexión.
Cómo probar sin módulos
- Renombra la carpeta
modulesamodules_backuptemporalmente. - Intenta cargar tu tienda.
- Si funciona, el problema está en algún módulo. Ve restaurando los módulos uno a uno hasta encontrar el culpable.
[TIP] Haz esto solo si tienes experiencia con PrestaShop, ya que desactivar todos los módulos puede afectar al funcionamiento de tu tienda.
Paso 10: Contacta con tu proveedor de hosting
Si has probado todos los pasos anteriores y el error sigue apareciendo, es hora de contactar con tu proveedor de hosting. Ellos pueden verificar si hay problemas en el servidor, como:
- Servicio MySQL caído.
- Límite de conexiones alcanzado.
- Bloqueo por IP o firewall.
- Problemas de configuración del servidor.
Ten a mano estos datos para agilizar la comunicación:
- El mensaje de error exacto.
- La URL de tu tienda.
- El nombre de tu base de datos.
- La fecha y hora en que empezó el problema.
Preguntas frecuentes sobre el error "Cannot connect to database" en PrestaShop
¿Puedo solucionar este error sin acceso a phpMyAdmin?
Sí, puedes revisar el archivo parameters.php y verificar que los datos sean correctos. Si el problema son las credenciales, tendrás que contactar con tu hosting para que te las actualicen o te den unas nuevas.
¿Qué hago si no tengo copia de seguridad de la base de datos?
Si no tienes copia de seguridad, intenta reparar la base de datos desde phpMyAdmin. Si eso no funciona, contacta con tu hosting: a veces tienen copias automáticas que pueden restaurar.
¿El error puede deberse a un ataque informático?
Es poco probable, pero no imposible. Si sospechas que tu sitio fue hackeado, cambia todas las contraseñas (base de datos, FTP, panel de control) y revisa los archivos de tu instalación en busca de archivos extraños.
¿Puedo evitar este error en el futuro?
Sí, sigue estas buenas prácticas:
- Realiza copias de seguridad periódicas de tu base de datos.
- No cambies las credenciales de la base de datos sin actualizar el archivo
parameters.php. - Mantén PrestaShop y sus módulos actualizados.
- Vigila el espacio disponible en tu servidor (una base de datos llena puede causar errores).
Conclusión
El error "Cannot connect to database" en PrestaShop puede ser frustrante, pero en la mayoría de los casos se resuelve revisando la configuración de conexión, las credenciales o el estado del servidor MySQL. Sigue los pasos en orden: primero lo más básico (que el servicio esté activo), luego las credenciales, y después los permisos y la caché.
Si después de todo esto el problema persiste, no dudes en contactar con tu proveedor de hosting. Ellos tienen acceso a herramientas y logs que pueden revelar la causa exacta del fallo.
Recuerda que la paciencia es clave: solucionar el error PrestaShop es un proceso de prueba y error, pero con esta guía tienes todas las herramientas necesarias para diagnosticarlo y arreglarlo tú mismo.
[INFO] Si tu hosting usa Syspanel, recuerda que el acceso al panel se realiza a través del puerto 2106. Allí podrás gestionar tus bases de datos, usuarios y permisos de forma visual y sencilla.
¡Espero que este artículo te haya sido de ayuda! Si tienes alguna duda, déjala en los comentarios y estaré encantado de ayudarte.
