Cómo arreglar el error 'PrestaShop no puede conectar con la base de datos'
¡Hola! Si estás leyendo esto, es muy probable que te hayas encontrado con un mensaje bastante frustrante en tu tienda online: "PrestaShop no puede conectar con la base de datos". No te preocupes, es uno de los errores más comunes en el mundo del hosting y, en la gran mayoría de los casos, tiene una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto en informática.
En esta guía extensa y paso a paso, vamos a desglosar qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva. Vamos a ello.
Entendiendo el problema: ¿Qué significa "error conexion base datos prestashop"?
Para que tu tienda PrestaShop funcione, necesita dos cosas fundamentales: los archivos (las plantillas, el código PHP, las imágenes) y la base de datos (donde se guardan tus productos, clientes, pedidos y configuración). Piensa en ello como una biblioteca: los archivos son los libros y la base de datos es el índice que te dice dónde está cada libro.
Cuando ves el mensaje de "error conexion base datos prestashop", significa que PrestaShop ha intentado "abrir el índice" (conectar con la BD) pero no ha podido. Es como si la biblioteca estuviera cerrada o alguien hubiera cambiado la cerradura sin avisar.
Este error suele manifestarse de varias formas:
- Un mensaje blanco que dice: "Link to database cannot be established".
- Un error de MySQL que menciona "Access denied for user" (Acceso denegado para el usuario).
- Un error que dice "Can't connect to local MySQL server through socket".
- O simplemente la página se queda cargando y luego muestra un error 500.
¿Por qué ocurre? Las causas más habituales son:
- Credenciales incorrectas: El usuario o la contraseña de la base de datos han cambiado o no coinciden con lo que PrestaShop tiene guardado.
- Servidor de BD caído o saturado: El servidor MySQL/MariaDB está apagado, reiniciándose o tiene demasiadas conexiones.
- Cambio de servidor o hosting: Si te has mudado de hosting recientemente, es muy fácil que la configuración no se haya actualizado.
- Archivos corruptos: Algún archivo de configuración de PrestaShop (como
parameters.php) se ha dañado o tiene información incompleta. - Base de datos llena o corrupta: Si la BD ha alcanzado su límite de tamaño o tiene tablas dañadas, la conexión puede fallar.
Antes de empezar: Prepara tu kit de herramientas
No necesitas ser un hacker, pero sí tener a mano cierta información. Para solucionar el error mysql prestashop, necesitarás:
- Acceso a tu panel de control de hosting (cPanel, Plesk, Syspanel, etc.). Si tu hosting usa Syspanel (antes conocido como HestiaCP), recuerda que el acceso se realiza a través del puerto 2106 (ejemplo:
https://tu-dominio.com:2106). - Acceso al administrador de archivos de tu hosting (o un cliente FTP como FileZilla).
- Acceso a phpMyAdmin (o la herramienta de gestión de bases de datos que ofrezca tu hosting).
[INFO] Si te has mudado a un nuevo hosting y usas Syspanel, asegúrate de haber creado la base de datos y el usuario en el nuevo panel antes de intentar mover los archivos. El puerto 2106 es tu puerta de entrada a la gestión total de tu servidor.
Paso 1: La solución más común (y la más rápida)
En el 80% de los casos, el problema es que las credenciales de acceso a la BD no son correctas. PrestaShop guarda estos datos en un archivo llamado parameters.php. Vamos a verificarlos.
1.1. Localiza el archivo de configuración
- Accede a tu panel de control de hosting o a tu cliente FTP.
- Navega hasta la carpeta raíz de tu tienda (normalmente
public_html,wwwohtdocs). - Busca la carpeta
app/config/. - Dentro, encontrarás un archivo llamado
parameters.php. Descárgalo a tu ordenador para tener una copia de seguridad.
1.2. Edita el archivo (con cuidado)
Abre el archivo con un editor de texto plano (como el Bloc de Notas de Windows o Sublime Text). Busca las líneas que contienen la información de la base de datos. Se verán así:
'database_host' => 'localhost',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Aquí es donde debes prestar atención:
database_host: Normalmente eslocalhost, pero en algunos hostings puede ser una IP como127.0.0.1o un servidor remoto comomysql.tudominio.com. Verifica con tu proveedor de hosting cuál es el host correcto.database_name: El nombre exacto de tu base de datos. A veces el hosting le añade un prefijo (ej:usuario_bd_nombre).database_user: El nombre de usuario de la BD. También puede tener un prefijo.database_password: La contraseña de ese usuario.
¿Cómo sé si estos datos son correctos? Muy fácil. Ve a tu panel de control (cPanel, Plesk o Syspanel) y entra en la sección de "Bases de datos MySQL". Ahí verás la lista de bases de datos y usuarios. Compara los nombres. Si no estás seguro de la contraseña, puedes cambiarla desde ahí mismo (¡pero recuerda actualizar el archivo parameters.php después!).
[WARNING] Si cambias la contraseña en el panel de control, debes cambiar la que aparece en
parameters.phppor la nueva. Si no, el error persistirá. Asegúrate de que la contraseña no contenga caracteres especiales como'(comilla simple) o"(comilla doble), ya que pueden romper el archivo PHP.
1.3. Sube el archivo corregido
Una vez hayas corregido los datos, guarda el archivo y súbelo de nuevo a la carpeta app/config/, reemplazando el antiguo. Recarga tu tienda. Este simple paso arregla el error conexion base datos prestashop en la mayoría de los casos.
Paso 2: Verifica que el servidor MySQL/MariaDB esté activo
Si los datos son correctos pero el error persiste, el problema puede ser que el servidor de base de datos esté caído o haya alcanzado su límite de conexiones.
2.1. Desde tu panel de control
- cPanel/Plesk: Busca la sección de "Estado del servidor" o "Monitor de recursos". Deberías ver si MySQL está corriendo (en verde) o detenido (en rojo).
- Syspanel: Accede a tu panel (recuerda, puerto 2106) y busca la sección de "Servicios" o "Estado". Deberías poder ver el estado de MySQL/MariaDB y reiniciarlo si es necesario.
[TIP] En Syspanel, a veces el servicio de MySQL se detiene por falta de memoria. Si reinicias el servicio y vuelve a caer, es una señal de que necesitas más RAM en tu plan de hosting.
2.2. Prueba desde phpMyAdmin
Otra forma de comprobar si el servidor MySQL está vivo es intentar acceder a phpMyAdmin. Si puedes entrar sin problemas, el servidor está funcionando. Si no puedes ni siquiera entrar a phpMyAdmin, el problema es del servidor, no de PrestaShop.
Paso 3: Revisa los permisos y el prefijo de las tablas
A veces, el error se debe a que las tablas de la base de datos tienen un prefijo que no coincide con el que PrestaShop espera.
3.1. Verifica el prefijo en parameters.php
En el mismo archivo parameters.php, busca una línea que diga:
'database_prefix' => 'ps_',
PrestaShop por defecto usa ps_, pero a veces se cambia por seguridad. Anota este prefijo.
3.2. Comprueba las tablas en phpMyAdmin
Accede a phpMyAdmin y selecciona tu base de datos. Mira la lista de tablas. ¿Empiezan todas por ps_ (o el prefijo que hayas anotado)? Si ves que las tablas se llaman __productos o shop_productos, entonces el prefijo no coincide.
Solución: Edita parameters.php y cambia el database_prefix para que coincida con el prefijo real de tus tablas. Es una solución rara, pero ocurre a veces al restaurar copias de seguridad de otros sitios.
Paso 4: El "Modo Mantenimiento" y la caché (el truco del reinicio)
A veces, PrestaShop guarda en caché la configuración antigua y no se entera de que has corregido el archivo parameters.php. Para forzar que lea la nueva configuración, necesitas limpiar la caché.
- Borra los archivos de caché: Con tu cliente FTP, navega a la carpeta
var/cache/(en versiones antiguas eracache/). Dentro, verás carpetas con nombres comodevoprod. Borra todo el contenido de la carpetacache(o de la carpetavar/cache), pero NO borres la carpeta en sí, solo lo que hay dentro. - Activa el modo mantenimiento (si puedes): Si aún puedes acceder al panel de administración (aunque la tienda esté rota), ve a "Parámetros Avanzados" -> "Mantenimiento" y actívalo. Guarda los cambios. Luego ve a "Parámetros Avanzados" -> "Rendimiento" y pulsa "Vaciar la caché". Después, desactiva el modo mantenimiento.
[INFO] Si no puedes acceder al panel de administración, borrar la carpeta
cachemanualmente suele ser suficiente. Es como reiniciar el "cerebro" de PrestaShop para que olvide los datos viejos y use los nuevos.
Paso 5: Revisa los logs de errores (para casos difíciles)
Si has llegado hasta aquí y el error mysql prestashop sigue apareciendo, es hora de ponerse el traje de detective. Los logs de error te dirán exactamente qué está fallando.
5.1. Activa el modo debug de PrestaShop
Edita el archivo config/defines.inc.php (en la raíz de tu instalación). Busca la línea:
define('_PS_MODE_DEV_', false);
Y cámbiala a:
define('_PS_MODE_DEV_', true);
Guarda el archivo y recarga tu tienda. Ahora, en lugar del error genérico, verás un mensaje mucho más detallado que incluye la línea exacta del código que falla y el motivo.
[WARNING] ¡IMPORTANTE! Una vez hayas solucionado el problema, vuelve a cambiar
_PS_MODE_DEV_afalse. Dejarlo entrueen un entorno de producción es un riesgo de seguridad grave, ya que muestra información sensible de tu servidor a cualquier visitante.
5.2. Consulta los logs del servidor
- cPanel: Busca la sección "Métricas" -> "Errores" o "Registros de errores".
- Syspanel: Dentro de tu panel (puerto 2106), busca la sección de "Logs" o "Registros". Podrás ver los logs de error de Apache/Nginx y de MySQL. Busca líneas que contengan "Access denied" o "Connection refused".
Paso 6: La solución definitiva (y a menudo olvidada): El host de la base de datos
Este es un error muy común cuando te mudas de hosting. En tu antiguo hosting, el host era localhost, pero en el nuevo (especialmente si usas servidores remotos o paneles como Syspanel), el host de la base de datos NO es localhost.
En Syspanel, al crear una base de datos, a menudo se te asigna un host específico que puede ser algo como localhost o una dirección IP interna del servidor. Revisa la información de tu base de datos en el panel.
- En Syspanel, ve a la sección de bases de datos. Verás el nombre de la BD, el usuario y el host. Si dice
localhost, déjalo. Si dice algo como127.0.0.1o un nombre de servidor, usa ese valor endatabase_host.
[TIP] Un error típico es usar
localhostcuando el servidor MySQL está en un socket Unix diferente o en un puerto no estándar. Si tu hosting te da un puerto específico (ej: 3307), deberás añadirlo en el archivo de configuración. Enparameters.php, busca'database_port' => '3306'y cámbialo al puerto correcto.
Preguntas Frecuentes (FAQ)
¿Puedo perder mis productos y pedidos si borro la caché?
No. La caché solo guarda archivos temporales para acelerar la web. Tus productos, clientes y pedidos están en la base de datos. Borrar la caché es seguro y no afecta a tu información.
¿Qué hago si no encuentro el archivo parameters.php?
Si no ves la carpeta app/config/, es que tu versión de PrestaShop es muy antigua (1.6 o anterior). En ese caso, el archivo se llama config/settings.inc.php. El proceso es el mismo: editar las constantes DB_NAME, DB_USER, DB_PASSWD y DB_SERVER.
¿Mi hosting me puede ayudar a arreglar este error?
Sí, absolutamente. Si has seguido todos los pasos y no funciona, contacta con el soporte de tu hosting. Son ellos quienes tienen acceso directo al servidor y pueden verificar si MySQL está corriendo, si hay bloqueos, o si el problema es de permisos. Diles que el error es "Link to database cannot be established" y que ya has verificado las credenciales en parameters.php.
¿Es normal que este error aparezca después de una actualización de PrestaShop?
Sí, puede pasar. A veces, una actualización fallida puede dañar el archivo parameters.php o cambiar la estructura de la base de datos. Si este es tu caso, verifica que la versión de PHP de tu servidor sea compatible con la versión de PrestaShop que has actualizado. Una incompatibilidad de PHP puede provocar errores de conexión a la BD.
Conclusión final
El error conexion base datos prestashop es frustrante, pero rara vez es un problema sin solución. Siguiendo estos pasos en orden (verificar credenciales -> reiniciar servicios -> limpiar caché -> comprobar logs), podrás resolver la inmensa mayoría de los casos en menos de 15 minutos.
Recuerda siempre:
- Respaldar los archivos antes de editarlos.
- Anotar los cambios que haces.
- Si te sientes abrumado, pide ayuda al soporte de tu hosting. Para eso están.
Espero que esta guía te haya sido de gran ayuda. ¡Ahora ve y salva tu tienda! 🚀
