PrestaShop: Solucionar error 'Can't connect to database'
¡Hola! Si estás leyendo esto, probablemente te has encontrado con uno de los errores más frustrantes y, a la vez, más comunes en el mundo del comercio electrónico: PrestaShop: Can't connect to database.
Este mensaje, que suele aparecer de repente o tras una actualización, puede paralizar tu tienda por completo. Pero no te preocupes, respira hondo. En esta guía extensa y detallada, vamos a desglosar qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo paso a paso, incluso si no eres un experto en tecnología.
Vamos a explicarlo todo de forma clara y sencilla, como si estuviéramos sentados frente a un café. Al final de este artículo, tendrás un plan de acción completo para arreglar la conexión a tu base de datos.
¿Qué significa realmente "Can't connect to database"?
Antes de lanzarnos a arreglar nada, es crucial entender qué está pasando. Imagina que tu tienda PrestaShop es una biblioteca enorme y llena de libros.
- PrestaShop es el bibliotecario que te muestra los libros (productos, clientes, pedidos).
- La Base de Datos (BD) es el almacén secreto donde se guardan todos esos libros.
El error "Can't connect to database" significa que el bibliotecario (PrestaShop) ha intentado abrir la puerta del almacén (Base de Datos) y no ha podido. O la llave no es la correcta, o la puerta está bloqueada, o el almacén se ha mudado de sitio sin avisar.
Este fallo de conexión puede deberse a múltiples factores, que vamos a clasificar en tres grandes grupos:
- Datos de acceso incorrectos: La "llave" (usuario y contraseña) no coincide.
- Problemas con el servidor de la base de datos: El "almacén" está caído, sobrecargado o inaccesible.
- Archivos de configuración corruptos o mal configurados: El "mapa" que usa el bibliotecario para encontrar el almacén está desactualizado o roto.
Vamos a atacar cada uno de estos frentes por orden de probabilidad y facilidad de solución.
Primeros pasos: Diagnóstico rápido y no invasivo
Antes de tocar nada, vamos a hacer una pequeña comprobación. A veces, el error es temporal (un pico de visitas, un reinicio del servidor). Pero si persiste, sigue estos pasos.
1. Verifica que tu hosting no esté caído
A veces el problema no es PrestaShop, sino el servidor donde está alojado. Puedes usar herramientas online como "Is It Down Right Now" o simplemente intentar acceder a la URL de tu panel de control de hosting.
- Si tu hosting está caído: Contacta con tu proveedor de hosting inmediatamente. Ellos te dirán si hay una incidencia global o si hay un problema con tu cuenta específica.
2. Revisa los logs de error (el diario de tu tienda)
PrestaShop guarda un registro de errores. Este registro es oro puro para el diagnóstico. Puedes encontrarlo en el panel de administración, en Parámetros avanzados > Información > Registro de errores (si es que puedes acceder al panel).
Si no puedes acceder al panel, mira en la carpeta /var/logs/ de tu instalación de PrestaShop. Busca archivos con extensión .log y ábrelos con un editor de texto. Verás líneas de error. Busca las que contengan "database" o "SQL".
[WARNING]: Si ves errores de "Access denied for user" o "Connection refused", es una pista clave. Significa que el problema está en los permisos o en la dirección del servidor de BD, que veremos a continuación.
La solución principal: Revisar el archivo parameters.php
Este es el archivo más importante en esta batalla. Es el "mapa" que usa PrestaShop para encontrar la base de datos. Está ubicado en la carpeta app/config/ de tu instalación (en versiones antiguas, en config/settings.inc.php).
Vamos a editarlo con cuidado. Necesitas acceso a tu hosting, ya sea por FTP (como FileZilla) o por el administrador de archivos de tu panel de control.
Cómo acceder y editar el archivo de configuración
- Conéctate a tu hosting usando FTP o el administrador de archivos.
- Navega hasta la carpeta
app/config/. - Busca el archivo
parameters.php. - Descarga una copia de seguridad a tu ordenador (¡esto es vital!).
- Ábrelo con un editor de texto plano (como el Bloc de notas o Sublime Text). No uses Word.
Una vez abierto, verás un código similar a este (la estructura puede variar ligeramente según la versión):
<?php return array (
'parameters' => array (
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'tu_nombre_de_bd',
'database_user' => 'tu_usuario_bd',
'database_password' => 'tu_contraseña_bd',
'database_prefix' => 'ps_',
'database_engine' => 'InnoDB',
// ... otros parámetros
),
);
Qué debes comprobar aquí
database_host: Este es el servidor donde está tu BD. En el 99% de los casos, eslocalhosto127.0.0.1. Pero si tu hosting usa servidores de BD externos (muy común en hosting compartido), aquí verás algo comomysql.tudominio.comobd12345.hosting.com. NO LO CAMBIES alocalhostsi no es así.database_name: El nombre exacto de tu base de datos. Asegúrate de que no tenga espacios ni caracteres raros.database_user: El usuario con permisos para acceder a esa BD.database_password: La contraseña de ese usuario.
[WARNING]: Antes de cambiar nada, verifica estos datos en el panel de control de tu hosting. No adivines. Si no los tienes, contacta con tu proveedor de hosting y pídeles "los datos de acceso a la base de datos MySQL".
El error más común: Después de una migración o restauración, los datos de este archivo quedan desactualizados. La solución es simplemente actualizarlos con los valores correctos.
Cómo cambiar la contraseña de la base de datos (si la has olvidado)
Si crees que el problema es la contraseña, la forma más segura de arreglarlo es cambiarla directamente desde tu panel de control de hosting.
- Ve a la sección de Bases de Datos MySQL en tu panel de hosting (cPanel, Plesk, etc.).
- Busca tu base de datos y la opción de "Cambiar contraseña".
- Establece una nueva contraseña segura.
- Actualiza el archivo
parameters.phpcon esta nueva contraseña. - Guarda los cambios y sube el archivo de nuevo al servidor (sobrescribiendo el anterior).
[TIP]: Si tu hosting tiene una herramienta de "Configuración de PrestaShop" o "Asistente de instalación", a veces puedes reutilizarla para regenerar el archivo de configuración. Busca en tu panel de control opciones como "Reparar PrestaShop" o "Actualizar configuración".
Solución avanzada: Reparar la conexión desde Syspanel
Muchos de nuestros clientes usan un panel de control llamado Syspanel (si has oído hablar de HestiaCP, es el mismo sistema, pero con un nombre más amigable). Si tu hosting usa Syspanel, el acceso es un poco diferente pero igual de sencillo.
Accediendo a las bases de datos en Syspanel
- Abre tu navegador y ve a
https://tu-dominio.com:2106. Recuerda, el puerto es 2106. - Inicia sesión con tus credenciales de administrador de Syspanel (no las de PrestaShop).
- Busca la sección de Bases de Datos o Base de Datos MySQL.
- Aquí podrás ver todas tus bases de datos, los usuarios asociados y, lo más importante, cambiar contraseñas y verificar los nombres exactos.
Pasos para arreglar la conexión desde Syspanel
- Identifica tu base de datos: Anota el nombre exacto de la BD que usa tu PrestaShop (suele tener un prefijo como
tu_usuario_nombrebd). - Revisa el usuario: Asegúrate de que el usuario que aparece en
parameters.phpestá asociado a esa base de datos y tiene todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.). - Si no estás seguro, crea un nuevo usuario y asígnale todos los privilegios a la base de datos. Luego, usa esos datos en tu
parameters.php. - Si cambiaste algo, guarda los cambios.
[INFO]: La ventaja de usar Syspanel es que centraliza la gestión. Si el error persiste, es muy probable que el problema no sea de configuración, sino del propio motor de la base de datos. En ese caso, desde Syspanel puedes intentar "Reiniciar" el servicio de MySQL o MariaDB.
Solución definitiva: Reparar o restaurar la base de datos
Si los datos de acceso son correctos y el servidor está activo, el problema puede ser que la base de datos esté corrupta. Esto puede pasar por cortes de energía, errores en actualizaciones o ataques malintencionados.
1. Reparar tablas con phpMyAdmin
phpMyAdmin es una herramienta que te permite gestionar tu base de datos desde el navegador. Casi todos los hostings la incluyen.
- Accede a phpMyAdmin desde tu panel de control (Syspanel, cPanel, etc.).
- Selecciona tu base de datos (la que aparece en
parameters.php). - Selecciona todas las tablas (marca la casilla de arriba del todo).
- En el menú desplegable inferior, elige la opción "Reparar tabla".
- Espera a que termine. Esto puede tardar unos minutos.
2. Restaurar una copia de seguridad
Si la reparación no funciona, la última bala de plata es restaurar una copia de seguridad reciente de tu base de datos.
- Ve a tu panel de control y busca la sección de Copias de Seguridad o Backups.
- Localiza una copia de tu base de datos. Lo ideal es que sea de antes de que empezara el error.
- Restaura esa copia. OJO: Esto sobrescribirá todos los datos actuales (pedidos, clientes, productos) con los de la copia. Ten esto en cuenta.
[WARNING]: Restaurar una BD es una acción destructiva. Asegúrate de hacer una copia de seguridad de la BD actual (aunque esté corrupta) antes de restaurar, por si acaso.
Errores comunes y soluciones rápidas (FAQ)
Vamos a responder a las preguntas más frecuentes que nos llegan sobre este tema.
"¿Por qué me sale este error después de cambiar de hosting?"
Este es el caso más común. Al migrar, los datos de acceso cambian. Solución: Edita app/config/parameters.php con los nuevos datos de tu nuevo hosting (host, usuario, contraseña y nombre de BD).
"He actualizado PrestaShop y ahora no conecta"
Las actualizaciones pueden alterar la estructura de la BD o dejar el archivo de configuración en un estado inconsistente. Solución: Revisa que el archivo parameters.php no se haya modificado. Si el error persiste, intenta reparar las tablas desde phpMyAdmin como explicamos antes.
"El error solo aparece a veces"
Esto suele indicar que el servidor de BD está sobrecargado o que hay un límite de conexiones. Solución: Contacta con tu proveedor de hosting. Puede que necesites un plan superior o que ellos tengan que optimizar el servidor.
"He probado todo y nada funciona"
Si has llegado hasta aquí sin éxito, es hora de llamar a los profesionales. Solución: Contacta con el soporte técnico de tu hosting. Diles que has revisado parameters.php, que has reparado las tablas y que el error persiste. Ellos podrán revisar los logs del servidor a un nivel más profundo.
Conclusión: No pierdas la calma, es un error solucionable
El error "Can't connect to database" en PrestaShop es un problema serio, pero casi siempre tiene una solución lógica y accesible. Hemos visto que la gran mayoría de las veces se resuelve simplemente corrigiendo los datos de acceso en el archivo parameters.php.
Recuerda la hoja de ruta:
- Verifica que tu hosting no esté caído.
- Revisa los logs de error.
- Edita
app/config/parameters.phpcon los datos correctos de tu BD. - Si usas Syspanel, verifica y gestiona los usuarios y contraseñas desde el puerto 2106.
- Repara las tablas desde phpMyAdmin.
- Restaura una copia de seguridad como último recurso.
Con un poco de paciencia y siguiendo estos pasos, podrás volver a ver tu tienda online funcionando. No dudes en consultar este artículo siempre que lo necesites. ¡Mucha suerte!
