Solucionar error de conexión a la base de datos en PrestaShop (cPanel)
¿Te ha aparecido el temido mensaje de "Error de conexión a la base de datos" en tu tienda PrestaShop? No te preocupes, es uno de los contratiempos más comunes, pero también uno de los que tiene solución más rápida si sabes dónde mirar. En esta guía extensa y paso a paso, vamos a desgranar todas las causas posibles y, sobre todo, las soluciones para que tu tienda vuelva a estar operativa en cuestión de minutos.
Vamos a centrarnos en entornos de hosting con cPanel, que es el panel de control más utilizado del mundo. Pero antes de entrar en materia, respira hondo. Este error no significa que hayas perdido tus productos, clientes o pedidos. Simplemente, tu tienda (el "cerebro" que es PHP) no puede hablar con su "memoria" (la base de datos MySQL). Vamos a restablecer esa comunicación.
¿Por qué ocurre este error? Las 4 causas principales
Antes de lanzarnos a tocar archivos, es vital entender qué está pasando. El error de conexión a la base de datos en PrestaShop casi siempre se debe a una de estas cuatro razones:
- Credenciales incorrectas: El archivo de configuración de PrestaShop tiene un usuario, contraseña o nombre de base de datos que ya no coincide con los reales. Esto pasa mucho al migrar de hosting o al cambiar la contraseña de MySQL desde cPanel.
- Servidor MySQL caído o sobrecargado: A veces el problema no es tuyo, sino del servidor. Si el servicio de bases de datos se ha reiniciado o está saturado, la conexión se rechaza.
- Archivos de configuración corruptos o con permisos erróneos: El archivo parameters.php es el corazón de la configuración. Si está dañado o no se puede leer, PrestaShop no sabe a dónde conectarse.
- Problemas de privilegios de usuario: El usuario de la base de datos puede existir, pero no tener permisos para acceder a la base de datos concreta de tu tienda. Esto es muy común al importar bases de datos manualmente.
Vamos a atacar cada una de estas causas en orden, de la más sencilla a la más compleja.
Paso 1: Verifica que el servidor MySQL está activo en cPanel
A veces la solución es más simple de lo que pensamos. Accede a tu cPanel (normalmente en tudominio.com/cpanel o tudominio.com:2083).
Dentro de cPanel, busca la sección "Bases de datos" o "MySQL". Verás una lista de tus bases de datos. Al lado de cada una, suele haber un indicador de estado o simplemente la opción de "Gestionar".
[INFO] Si no ves ninguna opción clara de estado, ve a la sección "Estado del servidor" (a veces está en la pestaña "Inicio" o "Preferencias"). Busca la fila que dice "MySQL" y comprueba que pone "En ejecución" o "Running". Si está "Detenido", no puedes hacer nada desde tu panel; contacta con tu proveedor de hosting de inmediato y diles: "El servicio MySQL de mi cuenta está caído".
Si el servidor está activo, continúa con el siguiente paso.
Paso 2: Localiza y revisa el archivo de configuración (parameters.php)
PrestaShop guarda todos los datos de conexión en un archivo llamado parameters.php. Este archivo se encuentra en la carpeta app/config/ de la raíz de tu instalación.
Para acceder a él, tienes dos opciones:
- Opción A (Recomendada para principiantes): Usa el Administrador de archivos de cPanel. Navega hasta
public_html(o la carpeta donde esté tu tienda) y luego entra enapp->config. Busca el archivoparameters.php, haz clic derecho y selecciona "Editar". - Opción B: Usa un cliente FTP como FileZilla y descarga el archivo a tu ordenador para editarlo con un editor de texto plano (como Notepad++ o Sublime Text).
Una vez dentro del archivo, busca el bloque que dice:
'database_host' => 'localhost',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Aquí está la clave del 80% de los errores. Verifica que estos cuatro campos sean exactamente los que tienes en tu cPanel.
database_host: Casi siempre eslocalhost, pero si tu hosting usa un servidor de bases de datos remoto, aquí aparecerá una URL o IP (ej:mysql.tudominio.com). No lo cambies salvo que sepas que es incorrecto.database_name: Ve a cPanel -> "Bases de datos MySQL". El nombre completo de tu base de datos suele tener un prefijo con tu nombre de usuario (ej:usuario_prestashop). Cópialo y pégalo aquí.database_user: Es el usuario que tiene acceso a esa base de datos. También suele llevar el prefijo (ej:usuario_admin_shop). Verifica que existe en la lista de usuarios de tu cPanel.database_password: Aquí está el error más común. Si has cambiado la contraseña del usuario de la base de datos en cPanel, debes actualizarla aquí también. Asegúrate de que la contraseña no tenga caracteres especiales que puedan romper el archivo PHP (como comillas simples o dobles).
Si has encontrado una discrepancia, corrígela, guarda el archivo y recarga tu tienda.
[WARNING] Al editar parameters.php, no borres las comillas ni los puntos y comas. Un solo carácter mal puesto puede causar un error fatal de PHP. Si usas el editor de cPanel, no cambies el "Juego de caracteres" (Charset).
Paso 3: Soluciona el error "Access denied for user" (Permisos o contraseña incorrecta)
Si después de verificar los datos, el error persiste y en los logs de tu hosting (o en la propia pantalla) ves un mensaje como "Access denied for user 'usuario'@'localhost' (using password: YES)", el problema es de autenticación.
Esto significa que el usuario existe pero la contraseña es incorrecta, o que el usuario no tiene privilegios sobre la base de datos.
Solución paso a paso desde cPanel:
- Ve a "Bases de datos MySQL".
- En la sección "Añadir usuario a la base de datos", busca tu base de datos y tu usuario.
- Si el usuario ya está añadido, el problema es la contraseña. Ve a la sección "Usuarios de MySQL" y busca tu usuario. Haz clic en "Cambiar contraseña".
- Crea una contraseña nueva y robusta. Apúntala en un lugar seguro.
- Ahora, vuelve al paso 2 (editar
parameters.php) y reemplaza la contraseña antigua por la nueva que acabas de crear. - Guarda y prueba.
[TIP] Al cambiar la contraseña, asegúrate de que el usuario tiene TODOS LOS PRIVILEGIOS sobre la base de datos. En la sección "Añadir usuario a la base de datos", si ya está añadido, puedes hacer clic en "Administrar privilegios" y marcar la casilla "TODOS LOS PRIVILEGIOS" para evitar problemas de lectura/escritura.
Paso 4: ¿Y si el error dice "Unknown database"? (Base de datos no encontrada)
Este error es más específico y significa que el nombre que has puesto en database_name no existe en tu servidor. Esto suele pasar después de una migración manual o si alguien borró la base de datos por accidente.
¿Cómo solucionarlo?
- Ve a cPanel -> "Bases de datos MySQL".
- Mira la lista de bases de datos existentes. ¿Está la tuya? Si no está, tienes que crearla.
- Crea una nueva base de datos con el nombre exacto que aparece en tu
parameters.php(o viceversa, cambia el nombre en el archivo para que coincida con el real). - Añade tu usuario a esa base de datos y concédele todos los privilegios.
- Si la base de datos existe pero está vacía, el error será diferente ("Tabla no encontrada"). Eso ya es otro problema (necesitas importar un backup), pero al menos la conexión se habrá establecido.
Paso 5: Soluciona el error de "Too many connections" (Servidor saturado)
A veces el error no es de configuración, sino de recursos. Si ves un mensaje como "User 'usuario' already has more than 'max_user_connections' active connections", significa que tu tienda está haciendo demasiadas peticiones a la vez (o tiene un bucle infinito).
Soluciones prácticas:
- Reinicia tu tienda: A veces, simplemente esperar 5 minutos y recargar la página soluciona el pico de conexiones.
- Revisa los módulos: Si acabas de instalar un módulo de caché o de búsqueda, puede estar generando un bucle de consultas. Desactiva los módulos recientes renombrando la carpeta
modulesamodules_baktemporalmente (esto desactiva todos). Si la tienda vuelve, ya sabes que el problema es un módulo. Luego reactiva los módulos uno a uno. - Optimiza la configuración de MySQL: Esto es más avanzado, pero si tu hosting lo permite, en cPanel puedes ajustar los parámetros de MySQL (como
max_connections). Si no, contacta con tu proveedor para que suba el límite.
Paso 6: La solución definitiva para casos extremos: Limpiar la caché de PrestaShop
PrestaShop guarda una copia de su configuración en archivos de caché. A veces, estos archivos se corrompen y causan errores fantasma.
Para limpiar la caché manualmente (sin entrar al panel de administración):
- Entra en el Administrador de archivos de cPanel.
- Navega a la carpeta
var/cache(en versiones modernas de PrestaShop 1.7/8) ocache(en versiones antiguas 1.6). - Dentro de esta carpeta, verás subcarpetas como
devoprod. - Elimina TODOS los archivos que están DENTRO de estas carpetas, pero no borres las carpetas en sí. Si no puedes borrarlos, selecciónalos todos y haz clic en "Eliminar".
[WARNING] En algunos servidores, los archivos de caché tienen permisos de solo lectura. Antes de borrarlos, selecciónalos y cambia los permisos a 755 o 777 temporalmente. Después de borrarlos, vuelve a dejar la carpeta cache con permisos 755.
Este proceso fuerza a PrestaShop a regenerar toda la configuración desde cero, lo que suele resolver errores de conexión que no tienen una lógica aparente.
Paso 7: ¿Sigues sin conexión? Revisa el archivo .htaccess
Aunque es menos común, un archivo .htaccess corrupto puede redirigir mal las peticiones y provocar errores extraños, incluidos los de base de datos.
Cómo probar:
- En el Administrador de archivos, busca el archivo
.htaccessen la raíz de tu tienda. - Renómbralo a
.htaccess.bak(esto lo desactiva). - Recarga tu tienda. Si el error de base de datos desaparece, el problema era ese archivo.
- Ve al panel de administración de PrestaShop (si puedes entrar) y ve a Parámetros avanzados -> Rendimiento. Pulsa el botón "Regenerar el archivo .htaccess". Si no puedes entrar, simplemente deja el archivo con el nuevo nombre (PrestaShop lo creará de nuevo al activar la tienda).
Preguntas Frecuentes (FAQ) sobre el error de conexión
P: He cambiado la contraseña de mi base de datos en cPanel y ahora mi tienda da error. ¿Qué hago?
R: Es el error más clásico. Debes actualizar la contraseña en el archivo app/config/parameters.php. Sigue el Paso 2 de esta guía.
P: Mi web da error de conexión, pero mi proveedor de hosting dice que MySQL está funcionando. ¿Qué más puede ser?
R: Revisa si el usuario de la base de datos tiene privilegios sobre la base de datos correcta. A veces, al importar una web desde otro hosting, el prefijo del usuario cambia. Ve a cPanel y verifica que el usuario está asignado a la base de datos.
P: ¿Es peligroso editar el archivo parameters.php?
R: Solo si no sabes lo que haces. Haz una copia de seguridad del archivo antes de editarlo. Si rompes algo, puedes restaurar la copia. Sigue las instrucciones al pie de la letra.
P: Mi hosting usa un panel diferente a cPanel, como Syspanel (antes conocido como HestiaCP). ¿Los pasos son los mismos?
R: La lógica es la misma, pero los nombres de las secciones cambian. En Syspanel (accesible normalmente a través del puerto 2106), buscarás secciones como "Base de datos" o "MySQL". La ruta del archivo parameters.php es idéntica. La clave está en encontrar la herramienta de gestión de bases de datos dentro de ese panel.
P: ¿Puedo solucionar esto desde el panel de administración de PrestaShop?
R: Si el error es de conexión, no podrás entrar al panel de administración, ya que también necesita la base de datos. Por eso siempre hay que solucionarlo desde el hosting (cPanel o FTP).
P: ¿Cuánto tiempo tarda en solucionarse?
R: Si es un problema de credenciales, unos 5 minutos. Si es un problema de caché, otros 10 minutos. Si es un problema del servidor, depende de tu proveedor de hosting.
Conclusión: Vuelve a poner tu tienda en marcha
Hemos recorrido todas las causas posibles del temido "error conexión PrestaShop". Desde la simple verificación de credenciales hasta la limpieza de caché, pasando por la revisión de permisos y el estado del servidor MySQL en cPanel. La clave está en la paciencia y en seguir los pasos en orden, sin saltarse ninguno.
Recuerda que este error es un problema de configuración, no de pérdida de datos. Tus productos y pedidos siguen intactos en la base de datos. Solo necesitas restablecer el puente entre tu tienda y su memoria.
Si después de todos estos pasos el problema persiste, no dudes en contactar con el soporte técnico de tu hosting. Dales toda la información que has recopilado (qué pasos has seguido, qué errores exactos ves) para que puedan ayudarte de forma más rápida y eficiente. ¡Tu tienda volverá a estar online en poco tiempo!
