🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo resolver el error 'Cannot connect to database' en PrestaShop

Actualizado el 22 de marzo de 2026

Cuando tu tienda PrestaShop se cae y aparece el temido mensaje "Cannot connect to database", el corazón se te acelera. Es uno de los errores más comunes y, a la vez, más desconcertantes para los dueños de tiendas online. Pero no te preocupes, respira hondo. En esta guía extensa y paso a paso, vamos a desglosar todas las causas posibles y, lo más importante, cómo solucionarlas de forma sencilla, incluso si no eres un experto en tecnología.

Piensa en tu base de datos como el almacén central de tu tienda: ahí se guardan tus productos, pedidos, clientes y contraseñas. Si la puerta de ese almacén no se abre, tu tienda no puede mostrar nada. Vamos a abrir esa puerta juntos.

¿Qué significa exactamente el error "Cannot connect to database"?

Este error, que también puede aparecer como "Cannot connect to database" o un mensaje similar en inglés, es la forma que tiene PrestaShop de decirte que no puede comunicarse con el servidor MySQL donde se almacenan sus datos. No es que hayas perdido la tienda, sino que hay una barrera de comunicación. Las razones pueden ir desde una contraseña mal escrita hasta un servidor caído.

A continuación, te presento un plan de acción lógico. No saltes pasos; empieza por el más sencillo y avanza hacia los más técnicos. El 80% de las veces, la solución está en los primeros puntos.


1. Verifica tu archivo de configuración (el primer lugar a mirar)

El archivo más importante para esta conexión es parameters.php. Es el "mapa" que le dice a PrestaShop dónde está su almacén y con qué llave abrirlo. Si este archivo tiene un dato incorrecto, tendrás el error de conexión a base de datos PrestaShop.

¿Cómo acceder al archivo?

Necesitarás un gestor de archivos. Puedes usar el Administrador de Archivos de tu hosting o un cliente FTP como FileZilla. La ruta típica es: tu-tienda.com/config/parameters.php.

¿Qué debo buscar?

Abre el archivo con un editor de texto (como el Bloc de notas o Sublime Text). Busca la sección parameters y las claves database_host, database_name, database_user y database_password.

  • database_host: Normalmente es localhost o 127.0.0.1. Si tu hosting usa un servidor de bases de datos externo, aquí aparecerá una URL como mysql.tudominio.com. No lo cambies a menos que tu proveedor te lo indique.
  • database_name: El nombre exacto de tu base de datos.
  • database_user: El usuario que tiene permisos para acceder a esa base.
  • database_password: La contraseña de ese usuario.

[TIP] Si hace tiempo que no editas el archivo, es muy fácil que la contraseña se haya cambiado en el hosting (por ejemplo, al renovar un certificado o por una política de seguridad) y no se haya actualizado en PrestaShop.

Solución: Compara estos datos con los que tienes en el panel de control de tu hosting (cPanel, Plesk, o el que uses). Si no coinciden, corrígelos en el archivo parameters.php. Guárdalo y sube el archivo de nuevo a tu servidor.


2. ¿El servidor MySQL está en marcha? (El problema del hosting)

A veces el problema no es tuyo, sino del servidor que aloja tu base de datos. Es como si el almacén estuviera cerrado por vacaciones. Para solucionar el error MySQL de PrestaShop, debes verificar el estado del servicio.

¿Cómo comprobarlo?

  1. Accede al panel de control de tu hosting.
  2. Busca la sección "Bases de Datos" o "MySQL".
  3. Si tu hosting te ofrece una herramienta como phpMyAdmin, intenta acceder a tu base de datos desde ahí.
  • Si phpMyAdmin abre y ves tus tablas: El servidor está bien, el problema es de configuración (vuelve al punto 1).
  • Si phpMyAdmin no abre o muestra error: El servidor MySQL está caído o sobrecargado.

Solución: Contacta con tu proveedor de hosting inmediatamente. Diles que tienes un error "Cannot connect to database" y que crees que el servidor MySQL está inactivo. Ellos deberían reiniciarlo o decirte si hay un mantenimiento programado.

[WARNING] Si el servidor MySQL está caído, no hagas nada más. Esperar a que tu proveedor lo solucione es la única opción. Cambiar archivos no arreglará un apagón del servidor.


3. La tabla "ps_shop_url" (El truco para entornos migrados)

Este es un error clásico y muy frustrante. A veces, el error no aparece al cargar la web, sino al intentar acceder al panel de administración de PrestaShop. La causa suele estar en la tabla ps_shop_url de tu base de datos. Esta tabla le dice a PrestaShop qué dominio debe usar. Si el dominio no coincide (por ejemplo, si cambiaste de dominio o moviste la tienda de un subdominio a la raíz), obtendrás un error de conexión.

Solución paso a paso:

  1. Entra a phpMyAdmin desde tu panel de hosting.
  2. Selecciona tu base de datos (la misma que aparece en parameters.php).
  3. Busca la tabla ps_shop_url (el prefijo ps_ puede variar, por ejemplo prestashop_shop_url).
  4. Haz clic en "Examinar" o "Browse".
  5. Verás una fila con un ID (normalmente 1). Haz clic en el icono de "Editar" (el lápiz).
  6. Revisa los campos domain y domain_ssl. Deben coincidir exactamente con tu dominio actual.
    • Si tu tienda es www.mitienda.com, en domain debe aparecer www.mitienda.com y en domain_ssl también.
    • A veces, por seguridad, el campo domain_ssl puede estar vacío. En ese caso, pon el mismo valor que en domain (o la versión con https:// si tu hosting lo requiere, pero normalmente solo el dominio sin protocolo).
  7. Guarda los cambios.

[INFO] Este error es muy común después de migrar una tienda de un servidor a otro o al cambiar el dominio. Si acabas de hacer una migración, este es tu punto de partida.


4. El usuario y los permisos de la base de datos

Imagina que la base de datos es un edificio. El usuario es la persona que intenta entrar. Si la persona no tiene la llave correcta (contraseña) o no tiene permiso para entrar en esa planta (permisos), el acceso será denegado. Este es un punto clave para solucionar el error MySQL en PrestaShop.

¿Cómo verificar y arreglar los permisos?

  1. Ve a tu panel de control de hosting (cPanel, Plesk o similar).
  2. Busca la sección "Bases de datos MySQL".
  3. Verás una lista de bases de datos y los usuarios asignados a ellas.
  4. Asegúrate de que el usuario que usas en PrestaShop está asignado a la base de datos correcta.
  5. Haz clic en "Administrar privilegios" o "Editar usuario".
  6. Marca la opción "Todos los privilegios" (o "ALL PRIVILEGES"). Esto le da al usuario control total sobre esa base de datos, que es lo que PrestaShop necesita para funcionar.

Solución: Si el usuario no tenía todos los privilegios, asígnaselos y guarda. Luego, intenta recargar tu tienda.

[WARNING] No asignes privilegios globales (a todas las bases de datos). Solo a la base de datos de tu tienda. De lo contrario, un hackeo en tu tienda podría comprometer todo tu hosting.


5. El puerto de conexión (Un detalle que pasa desapercibido)

La configuración estándar de MySQL usa el puerto 3306. Sin embargo, algunos hosts de gama alta o servidores dedicados utilizan puertos personalizados por seguridad. Si tu proveedor ha cambiado el puerto, PrestaShop no podrá conectar.

¿Cómo saber si este es tu caso?

  1. Revisa el panel de control de tu hosting. A menudo, en la sección de bases de datos, se indica el puerto. Si no lo ves, contacta con soporte y pregunta: "¿Cuál es el puerto de conexión MySQL para mi base de datos?"
  2. Si te dan un número diferente a 3306 (por ejemplo, 3307 o 3308), debes actualizar tu archivo parameters.php.

Solución en parameters.php: Busca la línea 'database_port' => '3306'. Cámbiala por el puerto nuevo que te han dado.

[TIP] A veces el campo database_port no está en el archivo. Si no aparece, añádelo después de database_password. La sintaxis sería: 'database_port' => '3307', (sin olvidar la coma).


6. El archivo .htaccess (El guardián que a veces bloquea)

El archivo .htaccess en la raíz de tu tienda controla el acceso a nivel de servidor. A veces, una regla mal escrita o un exceso de seguridad puede estar bloqueando la conexión a la base de datos, aunque no es lo más común. Pero vale la pena revisarlo si todo lo demás falla.

Solución: Haz una copia de seguridad de tu .htaccess (cámbiale el nombre a .htaccess.bak). Luego, ve a tu panel de administración de PrestaShop (si puedes acceder) y ve a "Parámetros Avanzados" > "Rendimiento". Ahí, busca el botón "Regenerar el archivo .htaccess". Si no puedes acceder al panel, simplemente deja el archivo sin extensión (renombrado) y PrestaShop lo regenerará al recargar la tienda.

[WARNING] Si renombras el .htaccess, tu tienda puede perder URLs amigables temporalmente. No te asustes, es normal. Se regenerarán cuando PrestaShop vuelva a estar operativo.


7. El caché de PrestaShop (El culpable invisible)

A veces, el error no es real, sino un fallo de caché. PrestaShop guarda archivos de configuración en caché para ir más rápido. Si la caché se corrompe (por ejemplo, durante un corte de luz o una actualización fallida), puede mostrar errores de conexión aunque todo esté bien.

¿Cómo limpiar la caché manualmente?

  1. Usa tu gestor de archivos o FTP para ir a la carpeta var/cache (en versiones antiguas era cache).
  2. Dentro de esa carpeta, verás subcarpetas con nombres como dev y prod.
  3. Borra el contenido de estas carpetas (los archivos que están dentro, no las carpetas en sí).
  4. Ve a la carpeta var/logs y también borra su contenido (esto ayuda a diagnosticar futuros problemas).

Después de esto, recarga tu tienda. PrestaShop creará una caché nueva y limpia.


8. ¿Has actualizado PHP o PrestaShop recientemente?

Las actualizaciones son geniales, pero a veces rompen la compatibilidad. Si acabas de actualizar la versión de PHP de tu servidor (por ejemplo, de 7.4 a 8.1) o has actualizado PrestaShop a una versión nueva, es posible que los controladores de la base de datos (el "puente" entre PHP y MySQL) no sean compatibles.

Solución: Si tienes acceso al panel de administración, prueba a cambiar la versión de PHP a una ligeramente anterior (por ejemplo, de 8.1 a 8.0 o 7.4) desde el panel de tu hosting. Si el error desaparece, el problema es la compatibilidad de versiones. Consulta la documentación oficial de PrestaShop para saber qué versión de PHP es la recomendada para tu versión de la tienda.

[INFO] Este es un problema muy típico. PrestaShop 1.7.8.x no funciona bien con PHP 8.1, por ejemplo. Siempre verifica la matriz de compatibilidad en el sitio oficial.


9. El error de "demasiadas conexiones" (Cuando el servidor está saturado)

Si el mensaje de error es más específico y dice algo como "User... has more than 'max_user_connections' active connections", significa que tu base de datos tiene un límite de conexiones simultáneas y lo has superado (o un plugin lo ha hecho).

Solución a corto plazo: Espera unos minutos y recarga. El servidor liberará conexiones.

Solución a largo plazo: Este error suele estar causado por plugins mal optimizados o por picos de tráfico muy altos. Deberías:

  1. Desactivar cualquier plugin de caché o de "one-page checkout" que estés usando.
  2. Contactar con tu hosting para aumentar el límite de conexiones si tu plan lo permite.
  3. Si el problema es recurrente, considera contratar un plan con más recursos.

10. Contactar con tu proveedor de hosting (El último recurso)

Si has llegado hasta aquí y el error de conexión a base de datos de PrestaShop persiste, es hora de llamar a los profesionales. El problema puede estar en el servidor a un nivel que no puedes ver, como un firewall interno, un problema con el módulo de seguridad o un fallo en el disco duro.

Cuando contactes, proporciona esta información para que te ayuden más rápido:

  • Captura de pantalla del error exacto.
  • El contenido de tu archivo parameters.php (¡pero oculta la contraseña!).
  • Fecha y hora en que comenzó el problema.
  • Lista de los pasos que ya has intentado.

FAQ - Preguntas Frecuentes sobre este error

¿Perderé mis datos si borro la caché?

No. La caché solo contiene archivos temporales para acelerar la carga. Tus productos, pedidos y clientes están en la base de datos y no se ven afectados. Es una de las operaciones más seguras que puedes hacer.

¿Qué hago si no tengo acceso a phpMyAdmin?

Si no puedes acceder a phpMyAdmin, es que tu plan de hosting es muy limitado. Deberías contactar con tu proveedor y pedirles que verifiquen la base de datos por ti. También puedes intentar pedirles que te activen el acceso a esta herramienta.

¿El error "Cannot connect to database" puede ser un hackeo?

En raras ocasiones, sí. Un atacante podría haber cambiado la contraseña de tu base de datos. Si sospechas de un hackeo, contacta con tu hosting inmediatamente y pídeles que revisen los logs de acceso a la base de datos.

¿Cómo sé si mi archivo parameters.php es el correcto?

El archivo debe tener permisos de lectura (644 o 444). Si tiene permisos de escritura (666 o 777), PrestaShop podría no leerlo bien por razones de seguridad. Cámbialo a 644 para que solo sea legible.

¿Qué es el prefijo de las tablas?

Es el texto que precede a los nombres de las tablas en tu base de datos, por ejemplo ps_orders, ps_customers. El prefijo predeterminado es ps_, pero puede ser diferente (como prestashop_). Es importante saberlo, pero no necesitas cambiarlo a menos que lo hayas cambiado tú mismo.


Conclusión:
El error "Cannot connect to database" en PrestaShop puede ser frustrante, pero es solucionable. Recuerda el orden: verifica la configuración, comprueba que el servidor esté vivo, revisa los permisos y, si es necesario, busca ayuda profesional. Con paciencia y esta guía, tu tienda volverá a estar en línea en poco tiempo. No tengas miedo de ensuciarte las manos; la mayoría de estas soluciones son reversibles y, sobre todo, ¡muy satisfactorias cuando funcionan!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel