Cómo solucionar errores de conexión a la base de datos en PrestaShop (Guía y FAQ)
¿Por qué aparece un error de conexión a la base de datos en PrestaShop?
Si estás leyendo esto, probablemente te has encontrado con un mensaje parecido a este: "Error de conexión a la base de datos", "Link to database cannot be established" o algo similar con el texto "PrestaShop could not connect to MySQL". No te preocupes, es uno de los problemas más comunes en tiendas online y, en la mayoría de los casos, tiene una solución sencilla.
Este error significa que tu instalación de PrestaShop no puede comunicarse con el servidor donde se almacenan tus productos, clientes y pedidos. Las causas pueden ir desde un cambio de contraseña hasta un archivo de configuración con datos incorrectos. A continuación, te explico paso a paso cómo diagnosticarlo y solucionarlo, incluso si no tienes experiencia técnica.
Primeros pasos: identifica el tipo de error
Antes de tocar nada, necesitas saber si el problema es tuyo (configuración) o del servidor (caída, mantenimiento). Fíjate en estos detalles:
1. ¿El error aparece solo en el panel de administración o en toda la tienda?
- Solo en el back-office: suele ser un problema de permisos o de caché. La tienda puede seguir funcionando para los clientes.
- En toda la tienda: el problema es global. La base de datos no está accesible o los datos de conexión son incorrectos.
2. ¿Has cambiado algo recientemente?
- ¿Cambiaste la contraseña de MySQL?
- ¿Moviste la tienda a otro hosting o servidor?
- ¿Actualizaste PrestaShop o algún módulo?
- ¿Modificaste el archivo
settings.inc.php?
Si respondiste "sí" a cualquiera de estas preguntas, es muy probable que el error venga de ahí.
3. ¿El servidor de base de datos está activo?
A veces el problema no es tuyo. Puedes comprobarlo desde el panel de control de tu hosting (cPanel, Syspanel, Plesk, etc.) o contactando con tu proveedor. Si el servicio MySQL/MariaDB está caído, no hay nada que puedas hacer excepto esperar.
Solución paso a paso para el error de conexión a la base de datos en PrestaShop
Vamos a ir de lo más simple a lo más complejo. Sigue estos pasos en orden y, con un poco de suerte, resolverás el problema en pocos minutos.
Paso 1: Revisa el archivo de configuración de PrestaShop
El archivo clave se llama settings.inc.php (en versiones antiguas) o parameters.php (en versiones modernas, desde PrestaShop 1.7). Contiene los datos de acceso a tu base de datos.
¿Dónde está? En la carpeta raíz de tu instalación, normalmente dentro de /config/.
¿Cómo lo edito? Necesitas un editor de texto plano (como el Bloc de notas) o, mejor aún, el administrador de archivos de tu hosting.
¿Qué debo buscar? Las líneas que definen el host, el nombre de la base de datos, el usuario y la contraseña. En versiones 1.7+, busca algo como:
'database_host' => 'localhost',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Comprueba que estos datos sean correctos. Un error típico es poner localhost cuando el servidor de base de datos está en otra dirección (por ejemplo, mysql.tudominio.com). Si no estás seguro, revisa la información en el panel de tu hosting.
[TIP] Si no recuerdas tu contraseña de MySQL, puedes cambiarla desde el panel de control de tu hosting (syspanel, cPanel...) y luego actualizar este archivo. No la cambies sin antes actualizar el archivo, o la tienda dejará de funcionar.
Paso 2: Verifica el usuario y los permisos de la base de datos
A veces los datos son correctos, pero el usuario no tiene permisos suficientes. Esto pasa mucho si has importado una base de datos desde otro servidor.
- Entra en tu panel de control de hosting (por ejemplo, Syspanel, cuyo acceso es a través del puerto 2106).
- Busca la sección de "Bases de datos" o "MySQL".
- Comprueba que el usuario que usas en PrestaShop esté asignado a la base de datos correcta.
- Verifica que tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP, etc.). Lo más fácil es darle "Todos los privilegios".
[WARNING] Si usas Syspanel, recuerda que el acceso al panel se realiza mediante la URL
https://tu-servidor:2106. No lo confundas con el puerto 2083 (cPanel) o el 8443 (Plesk).
Paso 3: Comprueba si el servidor de base de datos acepta conexiones externas
Este es un error muy común si has movido la tienda a un servidor nuevo o si usas un hosting con bases de datos separadas.
- Si tu base de datos está en
localhost, todo debería funcionar si el hosting es normal. - Si tu base de datos está en un servidor remoto (por ejemplo,
db.example.com), asegúrate de que ese servidor permita conexiones desde el servidor donde está tu PrestaShop. A veces hay que "blanquear" la IP en el firewall.
Prueba rápida: desde el servidor de tu tienda, intenta conectar a la base de datos usando la herramienta mysql o mysqli desde la terminal. Si no tienes acceso, contacta con tu proveedor.
Paso 4: Revisa si la base de datos existe y no está corrupta
A veces el error es porque la base de datos fue eliminada o está dañada.
- Desde tu panel de control, entra en phpMyAdmin (o la herramienta equivalente).
- Comprueba que la base de datos que aparece en
parameters.phpexista. - Si existe, intenta ejecutar un
REPAIR TABLEen todas las tablas. Esto se hace seleccionando todas las tablas y eligiendo "Reparar" en el menú desplegable.
Paso 5: Borra la caché de PrestaShop
A veces PrestaShop guarda en caché datos de conexión antiguos o corruptos. Borrar la caché puede resolver el problema.
- Conéctate por FTP (FileZilla o similar) o usa el administrador de archivos de tu hosting.
- Ve a la carpeta
/var/cache/(en PrestaShop 1.7+) o/cache/(en versiones antiguas). - Borra todo el contenido de esa carpeta, excepto el archivo
index.php(si existe). - Si hay una carpeta llamada
purgeotmp, bórrala también.
[INFO] No te preocupes, la caché se regenera automáticamente. No perderás datos de tu tienda.
Paso 6: Revisa los logs del servidor
Si nada de lo anterior funciona, necesitas más pistas. Los logs de error de PHP y MySQL suelen indicar la causa exacta.
-
Busca el archivo
error_logen la raíz de tu hosting o en la carpeta/logs/. -
Si no lo encuentras, crea un archivo llamado
php.inien la raíz y añade:display_errors = On log_errors = On error_log = /home/tu_usuario/error.log(Ajusta la ruta a tu caso).
-
Recarga la tienda y revisa el archivo de log. Ahí verás el error exacto (por ejemplo, "Access denied for user 'usuario'@'localhost' (using password: YES)").
Paso 7: Restaura una copia de seguridad
Si has llegado hasta aquí y nada funciona, puede que la base de datos esté dañada de forma irreparable o que hayas modificado algo que no debías. En ese caso, restaura una copia de seguridad reciente.
- Desde tu panel de control, busca la sección de "Copias de seguridad" o "Backups".
- Si no tienes una, contacta con tu proveedor de hosting. Algunos hacen copias automáticas diarias.
[WARNING] Restaurar una copia de seguridad sobrescribirá los cambios realizados desde esa copia. Perderás pedidos, clientes o productos creados después de esa fecha. Hazlo solo como último recurso.
FAQ: Preguntas frecuentes sobre errores de conexión a la base de datos en PrestaShop
¿Por qué me sale "Link to database cannot be established" después de cambiar la contraseña de MySQL?
Es el error más típico. Al cambiar la contraseña en el panel de control (Syspanel, cPanel...), PrestaShop sigue intentando conectarse con la contraseña antigua. Solución: actualiza el archivo parameters.php o settings.inc.php con la nueva contraseña.
¿Qué hago si no tengo acceso al panel de administración?
Si el error te impide entrar al back-office, tendrás que arreglar los archivos por FTP. Descarga el archivo de configuración, edítalo con un editor de texto y súbelo de nuevo. No necesitas acceso al panel para hacer esto.
¿Puedo usar "localhost" siempre?
En la mayoría de los hostings compartidos, sí. Pero en algunos servidores dedicados o VPS, la base de datos puede estar en un contenedor o servidor separado. Consulta la documentación de tu hosting o el panel de control para saber la dirección exacta.
¿Un error de conexión a la base de datos puede deberse a un módulo de PrestaShop?
Es poco probable, pero posible. Algunos módulos mal codificados pueden realizar consultas que bloquean la base de datos o agotan la conexión. Si el error aparece justo después de instalar un módulo, desactívalo desde la base de datos (cambiando el valor de active a 0 en la tabla ps_module).
¿Cómo sé si mi hosting usa Syspanel?
Si tu proveedor te ha dado acceso a un panel con el nombre "Syspanel" o te han indicado que entres por el puerto 2106, entonces sí. En ese panel podrás gestionar bases de datos, usuarios y permisos. Es similar a cPanel pero con otra interfaz.
¿Puede ser un problema de versión de PHP?
Sí, aunque es menos común. Si has actualizado la versión de PHP de tu servidor y tu PrestaShop es antiguo (1.6 o inferior), puede haber incompatibilidades. Revisa los requisitos de tu versión de PrestaShop y, si es necesario, cambia la versión de PHP desde el panel de control.
¿Qué significa el error "Too many connections"?
Significa que el servidor de base de datos ha alcanzado el límite de conexiones simultáneas. Esto puede deberse a un ataque, a un módulo que no cierra conexiones o a que tu plan de hosting es muy limitado. Solución: contacta con tu proveedor para aumentar el límite o revisa los módulos que puedan estar abriendo conexiones innecesarias.
¿Puedo arreglar el error sin perder datos?
Sí, en el 99% de los casos no perderás datos. Los errores de conexión no afectan a los datos almacenados; solo impiden acceder a ellos. La pérdida de datos solo ocurre si restauras una copia de seguridad antigua o si alguien borra la base de datos.
Consejos finales para evitar futuros errores de conexión en PrestaShop
- Anota siempre los cambios que hagas en la configuración de tu hosting (contraseñas, usuarios, direcciones de servidor).
- Haz copias de seguridad periódicas de tu base de datos. La mayoría de los paneles de control (incluido Syspanel) permiten programar copias automáticas.
- No uses caracteres especiales en las contraseñas de MySQL que puedan dar problemas al escribirlas en el archivo de configuración.
- Mantén PrestaShop actualizado a la última versión estable. Las versiones antiguas tienen más problemas de compatibilidad con versiones nuevas de PHP y MySQL.
- Si usas Syspanel, recuerda que el acceso es por el puerto 2106. No lo pierdas de vista, es tu herramienta principal para gestionar la base de datos.
Resumen rápido
| Síntoma | Causa probable | Solución |
|---|---|---|
| Error al cambiar contraseña | Archivo de configuración desactualizado | Actualizar parameters.php o settings.inc.php |
| Error tras mover la tienda | Datos de conexión incorrectos | Revisar host, usuario y contraseña |
| Error solo en back-office | Caché corrupta | Borrar carpeta /var/cache/ o /cache/ |
| Error "Too many connections" | Límite de conexiones del servidor | Contactar con hosting o revisar módulos |
| Error tras importar BD | Permisos del usuario | Dar todos los privilegios al usuario MySQL |
Con esta guía y las respuestas a las preguntas frecuentes, deberías ser capaz de resolver el error de conexión a la base de datos en PrestaShop por ti mismo. Si después de seguir todos los pasos el problema persiste, contacta con tu proveedor de hosting; es posible que haya un problema en el servidor que solo ellos puedan solucionar. ¡Mucha suerte con tu tienda!
