Cómo arreglar 'Error de conexión a la base de datos' en PrestaShop
¿Qué significa exactamente el error de conexión a la base de datos en PrestaShop?
Cuando visitas tu tienda online y en lugar de ver tus productos aparece un mensaje en inglés como "Link to database cannot be established" o en español "Error de conexión a la base de datos", significa que tu PrestaShop no puede comunicarse con el servidor donde se almacenan todos tus datos (productos, pedidos, clientes, contraseñas, etc.).
Este es uno de los errores más comunes y también uno de los más temidos, porque parece que tu tienda ha muerto. Pero tranquilo, en el 90% de los casos tiene una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto en programación.
Para que lo entiendas fácilmente: tu tienda PrestaShop es como un edificio, y la base de datos es el sótano donde están todos los archivos importantes. Si la puerta del sótano está cerrada con una llave equivocada, o si el sótano se ha llenado de agua, nadie puede entrar. Pues eso mismo es lo que ocurre aquí: algo impide que PrestaShop acceda a sus datos.
A lo largo de esta guía, vamos a explicarte paso a paso cómo diagnosticar y arreglar el error base de datos prestashop, desde las soluciones más simples hasta las más técnicas, para que puedas recuperar tu tienda cuanto antes.
Primeros pasos: no entres en pánico y haz una copia de seguridad
Antes de tocar nada, respira hondo. Este error no significa que hayas perdido tus datos. La información sigue ahí, en la base de datos. Lo que falla es la conexión.
[WARNING]
No modifiques ningún archivo sin antes hacer una copia de seguridad. Si algo sale mal, podrías empeorar la situación. Si tienes acceso al panel de control de tu hosting (cPanel, Plesk o Syspanel), haz una copia de seguridad completa o al menos de la base de datos.
Causa nº1: Datos de acceso incorrectos en settings.inc.php
La causa más común de este error es que los datos de conexión que tiene PrestaShop guardados no coinciden con los reales. Estos datos se encuentran en un archivo llamado settings.inc.php, que está en la carpeta config de tu instalación de PrestaShop.
¿Cómo localizar y revisar el archivo settings.inc.php?
- Accede a tu hosting mediante FTP (FileZilla es una buena opción gratuita) o a través del administrador de archivos de tu panel de control.
- Navega hasta la carpeta raíz de tu PrestaShop (normalmente
public_html,htdocso el nombre de tu dominio). - Entra en la carpeta
config. - Busca el archivo
settings.inc.phpy ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).
¿Qué datos debes comprobar?
Dentro del archivo verás algo parecido a esto:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_base_de_datos');
define('_DB_USER_', 'tu_usuario');
define('_DB_PASSWD_', 'tu_contraseña');
define('_DB_PREFIX_', 'ps_');
Estos cuatro primeros valores son los que tienes que verificar:
| Parámetro | ¿Qué significa? |
|---|---|
_DB_SERVER_ | La dirección del servidor de base de datos (normalmente localhost, pero a veces es un servidor remoto como mysql.tudominio.com) |
_DB_NAME_ | El nombre exacto de tu base de datos |
_DB_USER_ | El usuario que tiene permisos para acceder a esa base de datos |
_DB_PASSWD_ | La contraseña de ese usuario |
¿Dónde encuentro los datos correctos?
Si no recuerdas estos datos, puedes encontrarlos en:
- El correo de bienvenida de tu hosting: cuando contrataste el hosting, te enviaron un correo con los datos de la base de datos.
- El panel de control de tu hosting: en cPanel busca la sección "Bases de datos MySQL", en Plesk "Bases de datos", o si usas Syspanel (accede a través del puerto 2106, por ejemplo
https://tu-dominio.com:2106), busca la sección de bases de datos.
[TIP]
Si usas Syspanel, el acceso es a través del puerto 2106. No es el puerto habitual 2083 de cPanel ni el 8443 de Plesk. Una vez dentro, busca el apartado de bases de datos para ver los nombres y usuarios creados.
¿Cómo corregir los datos?
Una vez tengas los datos correctos, edita el archivo settings.inc.php y sustituye los valores incorrectos. Guarda el archivo y vuelve a cargar tu tienda.
[WARNING]
Asegúrate de no borrar las comillas simples que rodean cada valor. Si escribes _DB_NAME_, mi_tienda, sin las comillas, el archivo se romperá y el error empeorará.
Causa nº2: El servidor de base de datos está caído o saturado
Otra causa muy frecuente del prestashop no conecta bd es que el servidor MySQL (o MariaDB) que aloja tu base de datos esté caído, reiniciándose o saturado por demasiadas conexiones.
¿Cómo comprobarlo?
- Prueba con otra aplicación: si tienes WordPress u otra tienda en el mismo hosting, mira si también da error. Si todas las webs fallan, el problema es del servidor de bases de datos.
- Revisa el panel de control: en cPanel, Plesk o Syspanel (puerto 2106), busca indicadores de estado del servicio MySQL. Algunos paneles muestran si el servicio está activo o inactivo.
- Contacta con tu proveedor de hosting: si el servidor está caído, ellos deben reiniciarlo. Es un problema que no puedes solucionar tú, pero es bueno saber que no es culpa de tu tienda.
¿Qué hacer si el servidor está saturado?
Si tu hosting es compartido y el servidor está saturado, puede que necesites:
- Optimizar las consultas: desactivar módulos pesados temporalmente.
- Limpiar tablas con muchos registros: por ejemplo, la tabla de conexiones o de logs antiguos.
- Contratar un plan superior: si tu tienda tiene mucho tráfico, puede que el hosting compartido se quede corto.
Causa nº3: Archivos de PrestaShop corruptos o incompletos
A veces, durante una actualización fallida, una restauración incompleta o un ataque de malware, algunos archivos de PrestaShop se corrompen. El archivo settings.inc.php puede estar dañado o incompleto.
¿Cómo saber si el archivo está corrupto?
- Abre
settings.inc.phpy revisa si el código termina correctamente con?>. Si el archivo está cortado, es que está corrupto. - Compara el peso del archivo: un
settings.inc.phpnormal pesa entre 3 y 5 KB. Si pesa menos de 1 KB, algo falla.
Solución: restaurar el archivo original
[TIP]
Si tienes una copia de seguridad de tu tienda de cuando funcionaba, extrae el settings.inc.php de esa copia y súbelo a tu servidor. Recuerda ajustar los datos de conexión si has cambiado de hosting.
Si no tienes copia, puedes descargar una copia limpia de PrestaShop de la misma versión que tengas instalada y extraer el archivo config/settings.inc.php de ahí. Luego, edítalo con tus datos de conexión.
Causa nº4: Permisos incorrectos en el archivo settings.inc.php
Los archivos en un servidor Linux tienen permisos que controlan quién puede leer, escribir o ejecutarlos. Si el archivo settings.inc.php tiene permisos demasiado restrictivos, PHP no podrá leerlo y dará el error de conexión.
¿Qué permisos debe tener?
Los permisos recomendados para settings.inc.php son 644 (lectura y escritura para el propietario, solo lectura para el grupo y el resto).
¿Cómo cambiarlos?
- Con FileZilla: haz clic derecho sobre el archivo, selecciona "Permisos de archivo" y escribe
644. - Desde el administrador de archivos de tu hosting: busca la opción de permisos o chmod.
[INFO]
Aunque el archivo se llame .inc.php, es un archivo sensible. No le des permisos 777 (lectura, escritura y ejecución para todos), ya que sería un agujero de seguridad grave.
Causa nº5: El prefijo de las tablas no coincide
PrestaShop utiliza un prefijo para las tablas de la base de datos, normalmente ps_. Si este prefijo no coincide con el que realmente tienen las tablas, la conexión fallará.
¿Cómo comprobarlo?
- Accede a tu base de datos desde phpMyAdmin o la herramienta que te ofrezca tu hosting.
- Mira el nombre de las tablas. Si se llaman
ps_products,ps_orders, etc., el prefijo esps_. - Compara con el valor
_DB_PREFIX_ensettings.inc.php.
¿Cómo corregirlo?
Si el prefijo es diferente (por ejemplo, prestashop_), edita settings.inc.php y cambia el valor de _DB_PREFIX_ por el correcto.
Causa nº6: Problemas con la contraseña de la base de datos
A veces, la contraseña de la base de datos contiene caracteres especiales que se interpretan mal en PHP, especialmente si el archivo no está codificado correctamente.
Solución: cambiar la contraseña desde el panel de control
- Entra en el panel de control de tu hosting (cPanel, Plesk o Syspanel en el puerto 2106).
- Busca la sección de bases de datos MySQL.
- Cambia la contraseña del usuario de la base de datos.
- Actualiza el valor
_DB_PASSWD_ensettings.inc.phpcon la nueva contraseña.
[WARNING]
Si cambias la contraseña, asegúrate de que no haya otras aplicaciones que usen la misma base de datos, porque también se verán afectadas.
Causa nº7: El archivo settings.inc.php no existe
Si al navegar a config/settings.inc.php el archivo no está, PrestaShop no tiene forma de saber cómo conectarse a la base de datos.
¿Cómo solucionarlo?
- Descarga una copia limpia de PrestaShop de la misma versión.
- Extrae el archivo
config/settings.inc.php. - Súbelo a tu servidor.
- Edítalo con los datos de tu base de datos (los encuentras en el panel de control de tu hosting).
Preguntas frecuentes (FAQ)
¿Perderé mis datos si borro settings.inc.php?
No, el archivo solo contiene los datos de conexión. Tus productos, clientes y pedidos están en la base de datos. Pero no lo borres sin más: o lo editas correctamente o lo sustituyes por uno nuevo.
¿Qué hago si no tengo acceso al panel de control de mi hosting?
Contacta con tu proveedor de hosting y pídeles que te faciliten los datos de conexión a la base de datos o que ellos mismos revisen el error. También puedes pedirles que restauren una copia de seguridad reciente.
¿El error puede deberse a un ataque de hackers?
Sí, es posible. Algunos ataques modifican el settings.inc.php para redirigir la conexión a una base de datos maliciosa. Si sospechas de un ataque, revisa también los archivos en busca de código extraño y cambia todas tus contraseñas.
¿Cómo puedo prevenir este error en el futuro?
- Haz copias de seguridad periódicas de tu base de datos y archivos.
- No realices cambios en la base de datos sin saber lo que haces.
- Mantén PrestaShop y sus módulos actualizados.
- Utiliza contraseñas seguras para la base de datos.
¿Qué hago si después de todo esto el error persiste?
Si has probado todas las soluciones anteriores y el error base de datos prestashop continúa, puede que haya un problema más profundo con el servidor o con la propia instalación. Te recomendamos:
- Contactar con el soporte de tu hosting.
- Si tienes un plan de mantenimiento de PrestaShop, contactar con ellos.
- Publicar en foros especializados como PrestaShop Foro, describiendo tu problema con todo detalle.
Resumen final: checklist para solucionar el error
Para que no se te olvide nada, aquí tienes una lista de verificación rápida:
- Revisar los datos de conexión en
config/settings.inc.php(servidor, nombre, usuario y contraseña). - Verificar que el servidor de base de datos está activo (revisa otras webs o el panel de control).
- Comprobar que los permisos del archivo
settings.inc.phpson 644. - Confirmar que el prefijo de las tablas coincide con
_DB_PREFIX_. - Si nada funciona, restaurar el archivo desde una copia de seguridad.
- Si el problema es del servidor, contactar con el soporte del hosting.
Con esta guía, esperamos que hayas podido resolver el temido prestashop no conecta bd. Recuerda que la mayoría de las veces es un simple error de configuración y que los datos no se pierden. Si te ha funcionado, compártelo para ayudar a otros comerciantes que estén pasando por lo mismo. ¡Tu tienda vuelve a estar en marcha!
