Cómo solucionar el error de conexión a la base de datos en PrestaShop (WordPress)
¿Qué significa el error de conexión a la base de datos en PrestaShop?
Cuando visitas tu tienda PrestaShop y ves un mensaje como "Error de conexión a la base de datos", "Prestashop cannot connect database" o directamente una página en blanco con un texto técnico, significa que tu tienda no puede comunicarse con el servidor donde se guardan todos tus productos, pedidos, clientes y configuración.
Este es uno de los errores más comunes y, afortunadamente, también uno de los más fáciles de solucionar si sabes por dónde empezar. No necesitas ser un experto en programación ni en servidores para resolverlo. Solo necesitas seguir los pasos que te explico a continuación, con calma y en orden.
La buena noticia es que, en la mayoría de los casos, no has perdido ningún dato. Tus productos y pedidos siguen ahí, solo que la tienda no puede acceder a ellos temporalmente. Así que respira hondo, coge una taza de café y vamos a solucionar este problema paso a paso.
[INFO] A lo largo de esta guía me referiré a "Syspanel" cuando hablemos del panel de control de tu hosting. Recuerda que puedes acceder a Syspanel a través del puerto 2106 (por ejemplo,
https://tu-dominio.com:2106).
¿Por qué ocurre el error de conexión a la base de datos?
Antes de lanzarnos a solucionar el problema, es importante entender por qué ocurre. Esto te ayudará a prevenirlo en el futuro y a diagnosticar el origen rápidamente.
Las causas más frecuentes del error conexión base datos prestashop son:
- Credenciales incorrectas: El archivo de configuración de PrestaShop tiene los datos de acceso a la base de datos (usuario, contraseña, nombre de la BD y servidor). Si alguno de estos datos es incorrecto, la conexión falla.
- Cambios en el hosting: Si has migrado de servidor, cambiado la contraseña de la base de datos o restaurado una copia de seguridad, es probable que los datos no coincidan.
- La base de datos no existe o está corrupta: Puede que la base de datos se haya eliminado accidentalmente, o que esté dañada tras una importación fallida.
- Problemas del servidor: El servidor de bases de datos (MySQL/MariaDB) puede estar caído, saturado o bloqueado temporalmente.
- Límite de conexiones alcanzado: Si tu hosting tiene un límite de conexiones simultáneas y tu tienda recibe mucho tráfico, el servidor puede rechazar nuevas conexiones.
- Archivos de configuración corruptos: El archivo
parameters.phposettings.inc.phpde PrestaShop puede estar dañado o incompleto.
Paso 1: Verifica si el problema es general o solo de tu tienda
Lo primero que debes hacer es comprobar si solo tu tienda tiene el problema o si es algo generalizado del servidor. Para ello:
- Accede a la URL de tu tienda desde otro dispositivo (móvil, otro ordenador) o desde una conexión diferente.
- Si tienes otras webs en el mismo hosting, comprueba si también fallan.
- Intenta acceder al panel de administración de tu hosting (Syspanel) para ver si responde correctamente.
Si todo lo demás funciona, el problema es específico de tu PrestaShop. Si todo falla, es probable que el servidor esté caído y debas contactar con tu proveedor de hosting.
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/. También existe un archivo llamado settings.inc.php en la raíz de tu instalación (más común en versiones antiguas).
Para revisarlo:
- Accede a tu hosting a través de Syspanel (puerto 2106).
- Busca el gestor de archivos o utiliza un cliente FTP (como FileZilla).
- Navega hasta
tu-dominio.com/app/config/parameters.php(otu-dominio.com/config/settings.inc.phpsi usas PrestaShop 1.6 o anterior). - Abre el archivo con un editor de texto (no con un procesador de textos como Word).
Dentro del archivo, busca líneas similares a estas (en versiones modernas):
'database_host' => 'localhost',
'database_name' => 'nombre_base_datos',
'database_user' => 'usuario_bd',
'database_password' => 'contraseña_bd',
[WARNING] No compartas nunca estos datos con nadie. Son las llaves de tu tienda. Si crees que se han filtrado, cambia la contraseña de la base de datos inmediatamente.
Comprueba que estos datos coinciden exactamente con los que tienes en tu panel de control de hosting. Un error típico es que el database_host no sea localhost sino algo como mysql.tu-dominio.com o una IP concreta. Si no estás seguro, consulta la documentación de tu hosting o contacta con el soporte.
Paso 3: Comprueba que la base de datos existe y es accesible
Si los datos de configuración son correctos, el siguiente paso es verificar que la base de datos realmente existe y que el usuario tiene permisos para acceder a ella.
- Entra en Syspanel (puerto 2106).
- Busca el apartado de "Bases de datos" o "MySQL".
- Verifica que la base de datos que aparece en tu archivo
parameters.phpexiste en la lista. - Comprueba que el usuario que usas está asociado a esa base de datos y tiene todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.).
Si la base de datos no aparece, puede que se haya eliminado. En ese caso, deberías restaurar una copia de seguridad desde Syspanel o contactar con tu proveedor.
Si el usuario no tiene permisos, puedes asignárselos desde el mismo panel. Normalmente hay una opción para "añadir usuario a base de datos" o "gestionar privilegios".
Paso 4: Reinicia el servidor de bases de datos
A veces, el error no está en tu configuración sino en el propio servidor de bases de datos. Si tienes acceso a Syspanel, puedes intentar reiniciar MySQL/MariaDB.
- Accede a Syspanel (puerto 2106).
- Busca la sección de "Servicios" o "Servidores".
- Localiza el servicio de MySQL o MariaDB.
- Haz clic en "Reiniciar" y espera unos segundos.
[TIP] Si no tienes acceso a esta opción, no pasa nada. Puedes intentar reiniciar toda la cuenta de hosting desde Syspanel, o simplemente esperar unos minutos. A veces el servidor se recupera solo.
Paso 5: Prueba con las credenciales correctas
Si has llegado hasta aquí y todo parece correcto, es momento de hacer una prueba práctica. Te propongo un método sencillo para comprobar si las credenciales funcionan:
- Crea un archivo llamado
test_db.phpen la raíz de tu tienda (junto alindex.php). - Abre el archivo con un editor y pega este código:
<?php
$host = 'localhost';
$user = 'tu_usuario';
$pass = 'tu_contraseña';
$dbname = 'tu_base_datos';
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
die("Error: " . $conn->connect_error);
} else {
echo "Conexión exitosa";
}
?>
- Sustituye
tu_usuario,tu_contraseñaytu_base_datospor los datos reales. - Guarda el archivo y accede a
tu-dominio.com/test_db.phpen tu navegador.
Si ves "Conexión exitosa", las credenciales son correctas y el problema está en otra parte (posiblemente en el archivo de configuración o en la cache de PrestaShop). Si ves un error, ese error te dirá exactamente qué está fallando.
[WARNING] Elimina siempre el archivo
test_db.phpdespués de la prueba. Dejarlo en el servidor es un riesgo de seguridad enorme.
Paso 6: Limpia la caché de PrestaShop
A veces, PrestaShop guarda en caché datos antiguos de conexión y, aunque hayas corregido el problema, sigue mostrando el error. Para solucionarlo:
- Accede a tu hosting por FTP o desde el gestor de archivos de Syspanel.
- Navega hasta la carpeta
var/cache/(en PrestaShop 1.7 y 1.8) ocache/(en versiones anteriores). - Elimina todo el contenido de la carpeta
cache(los archivos y subcarpetas), pero no borres la carpeta en sí. - También puedes eliminar el archivo
var/cache/prodyvar/cache/devsi existen.
[INFO] Si no puedes eliminar los archivos desde el gestor de archivos, prueba a hacerlo desde un cliente FTP. A veces los permisos del servidor impiden la eliminación desde el panel.
Paso 7: Revisa los logs de error
Si sigues sin encontrar la causa, los registros de error te darán pistas valiosas. En Syspanel (puerto 2106), busca la sección de "Registros" o "Logs".
También puedes activar el modo de depuración de PrestaShop:
- Abre el archivo
config/defines.inc.phpen la raíz de tu tienda. - Busca la línea que dice
define('_PS_MODE_DEV_', false);. - Cámbiala a
define('_PS_MODE_DEV_', true);. - Guarda el archivo y recarga tu tienda.
Con el modo dev activado, verás en pantalla el error exacto de la base de datos. Esto puede ser algo como "Table not found", "Access denied for user", etc.
[WARNING] No olvides desactivar el modo dev cuando termines de diagnosticar. Dejarlo activo en producción es un riesgo de seguridad y muestra información sensible.
Paso 8: Restaura una copia de seguridad
Si todo lo anterior falla, la opción más rápida suele ser restaurar una copia de seguridad reciente de tu base de datos.
- Accede a Syspanel (puerto 2106).
- Busca la sección de "Backups" o "Copias de seguridad".
- Elige la copia más reciente que tengas.
- Restaura la base de datos.
[TIP] Antes de restaurar, haz una copia de seguridad de tu base de datos actual (aunque esté corrupta). Así no pierdes los datos que puedan haberse generado después de la copia que vas a restaurar.
Paso 9: Contacta con tu proveedor de hosting
Si has seguido todos los pasos y el prestashop error db persiste, es hora de pedir ayuda profesional. Contacta con el soporte técnico de tu hosting y explica:
- El mensaje de error exacto que ves.
- Qué pasos has probado ya.
- Si el problema apareció tras algún cambio (migración, actualización, cambio de contraseña, etc.).
El soporte técnico puede revisar los logs del servidor y ver si hay algún problema a nivel de infraestructura que no puedas ver tú.
Preguntas frecuentes (FAQ)
¿Puedo perder mis productos si no se conecta la base de datos?
No. Los datos siguen en la base de datos, solo que la tienda no puede acceder a ellos. Mientras no borres la base de datos ni la sobrescribas con una vacía, tus productos, clientes y pedidos están a salvo.
¿Cuánto tiempo se tarda en solucionar este error?
Depende de la causa. Si es un problema de credenciales, 10 minutos. Si hay que restaurar una copia de seguridad, 30-60 minutos. Si el problema es del servidor, puede tardar horas o incluso días si depende de tu proveedor.
¿Debo cambiar mi contraseña de base de datos si he tenido este error?
Sí, si sospechas que alguien ha podido acceder a tu archivo de configuración. Cambia la contraseña en Syspanel y actualiza el archivo parameters.php con la nueva.
¿Puedo prevenir este error en el futuro?
Sí. Algunas medidas preventivas son:
- Hacer copias de seguridad periódicas de tu base de datos.
- Anotar las credenciales en un lugar seguro.
- No cambiar la contraseña de la base de datos sin actualizar el archivo de configuración.
- Mantener PrestaShop y sus módulos actualizados.
¿Qué hago si el error aparece solo en el panel de administración?
Si el frontend (la tienda visible) funciona pero el backend (admin) da error, puede ser un problema de caché del navegador o de permisos de archivos. Limpia la caché del navegador y verifica los permisos de la carpeta admin (deben ser 755 en directorios y 644 en archivos).
Resumen final
El error conexión base datos prestashop es un problema común pero totalmente solucionable. La clave está en ir paso a paso:
- Comprueba si el problema es general o específico.
- Revisa el archivo
parameters.php. - Verifica que la base de datos existe y es accesible.
- Reinicia el servidor de bases de datos.
- Haz una prueba de conexión con un archivo temporal.
- Limpia la caché.
- Activa el modo dev para ver el error exacto.
- Restaura una copia de seguridad si es necesario.
- Contacta con el soporte si todo falla.
Recuerda que puedes acceder a todas las herramientas de gestión de tu hosting a través de Syspanel, usando el puerto 2106. Y sobre todo, no te agobies: este error tiene solución y, en el 90% de los casos, se resuelve en menos de una hora sin perder ningún dato.
Si después de leer esta guía sigues teniendo problemas, no dudes en preguntar en los foros oficiales de PrestaShop o contactar con tu proveedor de hosting. La comunidad de PrestaShop es muy activa y siempre hay alguien dispuesto a ayudar.
[INFO] Guarda esta guía en tus favoritos. Te será útil cada vez que aparezca un error de conexión a la base de datos en tu tienda. Y si conoces a alguien con el mismo problema, compártela con esa persona.
