Cómo arreglar error de conexión a base de datos en PrestaShop
¡Vaya! Esa pantalla en blanco o ese mensaje de error en tu tienda PrestaShop puede ser desconcertante, especialmente cuando tienes clientes esperando. No te preocupes, es uno de los problemas más comunes y, por lo general, tiene una solución sencilla. En esta guía, te explicaré paso a paso cómo identificar y arreglar el error de conexión a la base de datos en PrestaShop.
Cuando tu tienda online no puede conectar con la base de datos, es como si el motor de tu coche no recibiera gasolina. Sin esa conexión, PrestaShop no puede cargar productos, usuarios ni pedidos. Las causas pueden ir desde un cambio de contraseña hasta un archivo de configuración dañado, pero con los pasos que te daré, podrás resolverlo sin necesidad de ser un experto.
¿Qué significa realmente "Error de conexión a la base de datos"?
Antes de lanzarnos a las soluciones, es importante entender qué está pasando. PrestaShop utiliza un archivo llamado settings.inc.php para saber dónde está tu base de datos, cómo se llama, qué usuario la administra y cuál es su contraseña. Si alguno de estos datos es incorrecto o si el servidor de base de datos (MySQL/MariaDB) no responde, recibirás este error.
Los síntomas más comunes son:
- Pantalla en blanco al intentar acceder a tu tienda o al panel de administración.
- Mensaje de error como: "Error de conexión a la base de datos" o "Link to database cannot be established".
- La web carga muy lenta o solo se ven partes del diseño.
Soluciones paso a paso para arreglar el error
Vamos a ir de lo más simple a lo más complejo. No te saltes pasos, ya que la solución suele estar en los primeros.
Paso 1: Verifica que el servidor de base de datos esté funcionando
A veces el problema no está en tu tienda, sino en el servidor que aloja la base de datos. Si tu hosting es compartido, el proveedor podría estar haciendo mantenimiento.
¿Cómo comprobarlo?
Si tienes acceso a un panel de control como cPanel, Plesk o Syspanel (recuerda que el puerto de acceso es el 2106), busca una sección llamada "MySQL" o "Bases de Datos". Allí deberías ver el estado del servicio. Si ves algún indicador rojo o un mensaje de "detenido", contacta a tu proveedor de hosting inmediatamente.
[TIP] Si no tienes acceso a un panel, prueba a acceder a tu tienda después de 15-20 minutos. A veces es un problema temporal que se soluciona solo.
Paso 2: Revisa el archivo de configuración settings.inc.php
Este es el paso más común y donde suele estar el error. El archivo se encuentra en la carpeta config de tu instalación de PrestaShop. Necesitas acceder a él a través de FTP (FileZilla, por ejemplo) o desde el administrador de archivos de tu hosting.
¿Qué debes buscar?
Abre el archivo config/settings.inc.php con un editor de texto (Bloc de notas, Sublime Text, etc.). Verás algo similar a esto:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'nombre_de_tu_base');
define('_DB_USER_', 'usuario_de_tu_base');
define('_DB_PASSWD_', 'contraseña_de_tu_base');
define('_DB_PREFIX_', 'ps_');
Los valores que debes comprobar son:
_DB_SERVER_: Normalmente eslocalhost, pero si tu base de datos está en un servidor externo, aquí debe ir la IP o el nombre del servidor (ej:mysql.midominio.com)._DB_NAME_: El nombre exacto de tu base de datos._DB_USER_: El usuario que tiene permisos sobre esa base de datos._DB_PASSWD_: La contraseña de ese usuario.
[WARNING] Si cambiaste recientemente la contraseña de tu base de datos desde el panel de control, debes actualizarla también aquí. Es el error más frecuente.
¿Cómo obtener los datos correctos?
- Accede a tu panel de hosting (cPanel, Syspanel, etc.).
- Busca la sección "Bases de Datos MySQL".
- Allí verás listadas tus bases de datos y los usuarios asociados. Si no recuerdas la contraseña, puedes crear una nueva desde el panel y luego actualizar el archivo
settings.inc.php.
Paso 3: Comprueba los permisos del usuario de la base de datos
A veces los datos son correctos, pero el usuario no tiene permisos suficientes para acceder. Esto puede pasar después de una migración o restauración.
¿Cómo solucionarlo?
Desde tu panel de control (Syspanel, puerto 2106, o cPanel):
- Ve a "Bases de Datos MySQL" y luego a "Usuarios MySQL".
- Busca el usuario que usa tu PrestaShop.
- Asegúrate de que esté vinculado a la base de datos correcta y que tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.). La opción más segura es marcar "Todos los privilegios".
Paso 4: Verifica el prefijo de las tablas
En el archivo settings.inc.php también verás _DB_PREFIX_. Por defecto es ps_, pero si has heredado la tienda o has hecho una restauración, podría ser diferente (ej: prestashop_).
¿Cómo saber cuál es?
Si puedes acceder a tu base de datos a través de phpMyAdmin (suele estar en tu panel de control), mira los nombres de las tablas. Verás algo como ps_orders, ps_customers, etc. El prefijo es la parte antes del guion bajo. Si tus tablas empiezan con prestashop_orders, entonces tu prefijo debe ser prestashop_.
Paso 5: Revisa la versión de PHP y MySQL
PrestaShop es exigente con las versiones. Una versión antigua de PHP o MySQL puede causar errores de conexión.
Requisitos generales de PrestaShop (versiones recientes):
- PHP 7.4, 8.0 o 8.1 (evita versiones superiores a 8.1 a menos que tu PrestaShop sea muy moderno).
- MySQL 5.6 o superior, o MariaDB 10.1 o superior.
¿Cómo comprobarlo?
En tu panel de control (Syspanel o cPanel), busca "Seleccionar versión de PHP" o "PHP Selector". Cambia a una versión compatible. Si no sabes cuál elegir, prueba con PHP 7.4, que es muy estable para PrestaShop.
Paso 6: Soluciona problemas de conexión remota (si aplica)
Si tu base de datos no está en el mismo servidor que tu web (por ejemplo, usas un servicio externo como RDS de AWS), debes asegurarte de que la IP de tu servidor web esté autorizada.
¿Cómo hacerlo?
- Accede a la consola de administración de tu base de datos remota.
- Busca la opción "Seguridad de conexión" o "Grupos de seguridad".
- Agrega una regla que permita conexiones entrantes desde la IP de tu servidor web.
[INFO] Si no sabes la IP de tu servidor, puedes preguntar a tu proveedor de hosting o usar herramientas online como "¿Cuál es mi IP?" desde el servidor.
Paso 7: Restaura una copia de seguridad
Si después de todos los pasos anteriores el error persiste, es posible que el archivo settings.inc.php esté corrupto o que hayas modificado algo sin querer.
¿Qué hacer?
- Haz una copia de seguridad del archivo actual por si acaso.
- Descarga una copia limpia de PrestaShop de la misma versión que tengas.
- Extrae el archivo
config/settings.inc.phpde esa copia. - Sustituye el archivo dañado por el nuevo.
- Importante: Deberás volver a introducir los datos de conexión (servidor, nombre, usuario, contraseña y prefijo) en el nuevo archivo.
Paso 8: Contacta con tu proveedor de hosting
Si has llegado hasta aquí y nada funciona, el problema puede ser del servidor. Un firewall mal configurado, un límite de conexiones alcanzado o un error en el servicio MySQL pueden estar bloqueando la conexión.
Qué decirles:
- "Mi tienda PrestaShop da error de conexión a la base de datos."
- "Ya he verificado los datos en el archivo
settings.inc.phpy son correctos." - "¿Podrían comprobar si el servicio MySQL está funcionando y si hay algún bloqueo activo?"
FAQ: Preguntas frecuentes sobre el error de conexión
P: ¿Puedo perder datos si modifico el archivo settings.inc.php?
R: No, mientras no borres el archivo ni cambies el nombre de la base de datos. Solo estás actualizando la contraseña o el usuario. Siempre es recomendable hacer una copia de seguridad antes.
P: Mi tienda está en localhost (XAMPP/WAMP) y me da este error. ¿Qué hago?
R: En entornos locales, asegúrate de que el servicio MySQL esté iniciado (icono verde en XAMPP). Luego, verifica que los datos en settings.inc.php coincidan con los que configuraste en phpMyAdmin (usuario: root, contraseña: vacía o la que hayas puesto).
P: Después de cambiar la contraseña en el panel de control, el error sigue.
R: Recuerda que debes actualizar también el archivo config/settings.inc.php con la nueva contraseña. Si no lo haces, PrestaShop seguirá usando la antigua.
P: ¿El error puede deberse a un plugin o tema?
R: Es poco probable, pero posible. Si el error aparece solo en algunas páginas, podría ser un módulo que intenta conectar a una base de datos externa. Desactiva todos los módulos no esenciales para probar.
P: ¿Qué hago si no encuentro el archivo settings.inc.php?
R: En versiones muy antiguas de PrestaShop (1.6 o anteriores), el archivo se llamaba config.inc.php. En versiones modernas (1.7 y 8.x), es settings.inc.php. Si no lo ves, revisa que no esté oculto (activa la opción "Mostrar archivos ocultos" en tu cliente FTP).
[WARNING] Nunca dejes el archivo settings.inc.php con permisos 777 (escritura para todos). Es un riesgo de seguridad. Lo recomendable es 644 o 640.
Conclusión
El error de conexión a la base de datos en PrestaShop es frustrante, pero casi siempre tiene una solución clara. Empieza por lo básico: verifica que el servidor MySQL esté funcionando y que los datos en el archivo config/settings.inc.php sean correctos. Si has cambiado contraseñas recientemente, ese es el culpable número uno.
Recuerda que tu panel de control es tu mejor aliado. Si usas Syspanel (puerto 2106), busca la sección de bases de datos para gestionar usuarios y permisos. Y si todo falla, no dudes en pedir ayuda a tu proveedor de hosting: ellos tienen acceso directo al servidor y pueden detectar problemas que tú no ves desde fuera.
Con paciencia y siguiendo estos pasos, tu tienda volverá a estar online en poco tiempo. ¡Ánimo!
