Resolver error de conexión a base de datos en PrestaShop (Plesk)
¿Tu tienda PrestaShop ha dejado de funcionar de repente y te aparece un mensaje de error que menciona la base de datos? No te preocupes, es uno de los problemas más comunes en el mundo del hosting y, por suerte, casi siempre tiene solución.
En esta guía, pensada para usuarios sin experiencia técnica, vamos a explicarte paso a paso cómo resolver el error de conexión a base de datos en PrestaShop cuando tu hosting está gestionado con Plesk. Vamos a desglosar las causas más frecuentes, desde las contraseñas caducadas hasta los problemas de archivos de configuración, para que puedas recuperar tu tienda online lo antes posible.
¿Qué significa exactamente el error de conexión a base de datos?
Cuando ves un mensaje como "Error de conexión a la base de datos" o "Link to database cannot be established", significa que tu tienda PrestaShop no puede comunicarse con el servidor donde se almacenan todos tus productos, pedidos y clientes.
Piensa en tu web como una tienda física. La base de datos es el almacén trasero. Si la puerta que conecta la tienda con el almacén está bloqueada o la llave no funciona, no puedes vender nada. Ese bloqueo es lo que vamos a solucionar.
Este error puede aparecer en la portada de tu web, en el panel de administración (back-office) o incluso durante una actualización. La buena noticia es que rara vez significa que hayas perdido datos. Casi siempre es un problema de configuración o de permisos.
Primeros pasos: Diagnóstico rápido y seguro
Antes de tocar nada, respira. No hagas clic en botones aleatorios ni borres archivos. Vamos a seguir un orden lógico para identificar el origen del problema.
1. Verifica si el problema es general o solo de PrestaShop
Accede a tu panel de control de Plesk. Si puedes entrar sin problemas, significa que el servidor está funcionando. Ahora, intenta acceder a otra web que tengas en el mismo hosting (si tienes alguna). Si todas fallan, el problema es del servidor. Si solo falla PrestaShop, el problema es específico de tu tienda.
2. Comprueba si el servicio MySQL/MariaDB está activo
En Plesk, busca la sección de "Herramientas y ajustes" o "Servicios". Deberías ver una lista con los servicios del sistema. Busca el que se llame MySQL o MariaDB (es el motor de base de datos que usa PrestaShop).
- Si aparece con un icono verde o dice "Activo", el servicio está bien.
- Si está en rojo o dice "Detenido", ese es el problema. Haz clic en "Iniciar" o "Reiniciar". En la mayoría de los casos, con reiniciar el servicio se resuelve el bloqueo temporal.
[TIP] Un reinicio del servicio MySQL suele ser la solución más rápida y efectiva para errores de conexión que aparecen de forma intermitente. No te asustes, es un proceso seguro y no borra datos.
Las 4 causas más comunes y cómo solucionarlas
Si el servicio está activo, pasamos a las causas más habituales. Vamos a revisarlas una por una, de la más simple a la más compleja.
Causa 1: Contraseña de la base de datos incorrecta o caducada
Esta es, con diferencia, la causa más frecuente. Plesk tiene una política de seguridad que puede hacer que las contraseñas de las bases de datos caduquen periódicamente, o quizás la cambiaste hace tiempo y no actualizaste el archivo de configuración de PrestaShop.
La solución: Actualizar la contraseña en PrestaShop.
- Ve a tu panel de Plesk y busca la sección "Bases de datos".
- Localiza la base de datos que usa tu tienda (suele tener un nombre parecido al de tu dominio, ej.
mistienda_db). - Haz clic en el nombre de la base de datos para entrar en sus ajustes.
- Busca la opción de cambiar la contraseña del usuario. A veces está en la pestaña "Usuarios".
- IMPORTANTE: No generes una contraseña aleatoria que no puedas recordar. Escribe una nueva que sea segura pero que puedas anotar. Guárdala en un bloc de notas.
- Ahora, necesitas actualizar PrestaShop. Accede a tu servidor por FTP (FileZilla es la herramienta más común) o usa el "Administrador de archivos" de Plesk.
- Busca la carpeta raíz de tu tienda (normalmente
httpdocsopublic_html). - Dentro, busca un archivo llamado
parameters.php(en versiones modernas de PrestaShop) osettings.inc.php(en versiones antiguas). Está en la carpetaconfig. - Ábrelo con un editor de texto (el Bloc de notas sirve). Busca las líneas que dicen
'database_password' => 'XXXXXXXX'y reemplazaXXXXXXXXpor la nueva contraseña que acabas de crear. - Guarda el archivo y súbelo de vuelta si lo descargaste. Si usaste el administrador de archivos de Plesk, simplemente guarda los cambios.
[WARNING] Al editar archivos de configuración, asegúrate de no borrar comillas, comas o puntos y comas. Un solo carácter mal puesto puede romper tu tienda por completo. Si no te sientes seguro, haz una copia de seguridad del archivo original antes de editarlo.
Causa 2: Archivo de configuración dañado o con datos incorrectos
A veces, el archivo parameters.php se corrompe durante una actualización fallida de PrestaShop, una restauración incompleta o un error al editarlo. No solo la contraseña, sino el nombre de la base de datos o el usuario pueden ser incorrectos.
La solución: Verificar y corregir todos los datos de conexión.
Abre el archivo parameters.php que mencionamos antes. Debe tener una estructura similar a esta:
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
database_host: En Plesk, casi siempre eslocalhost. Si has configurado un host remoto, deberías ver la IP del servidor, pero es poco común en hosting compartido.database_name: Este nombre debe coincidir EXACTAMENTE con el que ves en tu panel de Plesk, en la sección "Bases de datos". Cualquier error tipográfico, como una letra mayúscula o un guion bajo de más, causará un error de conexión.database_user: Al igual que el nombre, el usuario debe ser idéntico al que ves en Plesk. A menudo, Plesk añade un prefijo al usuario (ej.miusuario_db).
Compara estos datos con los que aparecen en tu panel de control. Si algo no coincide, corrígelo.
[INFO] El puerto de la base de datos suele estar vacío o ser
3306. No lo modifiques a menos que tu proveedor de hosting te diga lo contrario.
Causa 3: El usuario de la base de datos no tiene permisos suficientes
Imagina que tienes la llave correcta (la contraseña), pero el dueño del almacén (Plesk) no te ha dado permiso para abrir todas las puertas. En Plesk, cada usuario de base de datos tiene permisos específicos (SELECT, INSERT, UPDATE, DELETE, etc.). Si por algún motivo se han revocado o no se asignaron correctamente, PrestaShop no podrá funcionar.
La solución: Asignar todos los privilegios al usuario.
- En Plesk, ve a la sección "Bases de datos".
- Haz clic en el nombre de la base de datos de tu tienda.
- Ve a la pestaña "Usuarios".
- Verás el usuario asociado. Haz clic en el icono de editar o en el nombre del usuario.
- Busca la sección de "Privilegios" o "Permisos".
- La opción más segura es marcar la casilla "Todos los privilegios" o seleccionar manualmente todas las opciones disponibles (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.).
- Guarda los cambios.
[TIP] Si no sabes qué permisos marcar, elige "Todos". PrestaShop necesita acceso completo a su base de datos para funcionar correctamente, incluyendo la creación de tablas temporales durante el proceso de compra.
Causa 4: PrestaShop está en modo de mantenimiento o el archivo .htaccess está corrupto
A veces, el error no es de conexión en sí, sino un bloqueo previo. Si PrestaShop se quedó a medias en una actualización, puede estar "atascado" y mostrar errores confusos. Un archivo .htaccess corrupto también puede impedir la comunicación con la base de datos.
La solución: Forzar la regeneración de los archivos de configuración.
- Por FTP, ve a la carpeta raíz de tu tienda.
- Busca un archivo llamado
.htaccess. No lo borres, simplemente renómbralo a algo como.htaccess_backup. Esto hará que PrestaShop lo regenere desde cero. - Ahora, intenta acceder a tu tienda. Si funciona, genial. Si no, tendremos que forzar la regeneración del archivo
parameters.php.
Para forzar la regeneración de parameters.php:
- Ve a la carpeta
configdentro de tu tienda. - Renombra el archivo
parameters.phpaparameters_backup.php.
[WARNING] Este último paso es más avanzado. Al renombrar
parameters.php, PrestaShop intentará crear uno nuevo durante la próxima carga de la página. Si no lo hace, te pedirá que ejecutes el instalador. NO EJECUTES EL INSTALADOR a menos que sepas cómo hacer una restauración de base de datos, ya que podrías borrar tus productos. Si tras renombrarlo no se crea un archivo nuevo automáticamente, vuelve a ponerle el nombre originalparameters.php.
Solución avanzada: Reparar las tablas de la base de datos
Si ninguna de las opciones anteriores funciona, el problema puede estar dentro de la propia base de datos. Las tablas pueden estar corruptas o tener errores internos. Plesk tiene una herramienta para esto.
La solución: Usar phpMyAdmin para reparar las tablas.
- En Plesk, ve a "Bases de datos".
- Haz clic en el nombre de la base de datos de tu tienda.
- Busca el botón o enlace que dice "phpMyAdmin". Se abrirá una nueva ventana o pestaña.
- En el panel izquierdo, verás una lista de tablas (archivos que empiezan con
ps_oprestashop_). - Haz clic en la casilla de verificación en la parte superior para seleccionar todas las tablas.
- En el menú desplegable inferior (donde dice "Con seleccionados"), elige la opción "Reparar tabla" o "Reparar".
- Confirma la acción. El sistema escaneará y reparará las tablas dañadas.
Este proceso es seguro y no borra datos. Simplemente busca y corrige inconsistencias internas en la estructura de las tablas.
[INFO] Esta herramienta es muy útil para errores como "Table 'ps_orders' doesn't exist" o "Table is marked as crashed". Es una de las soluciones más efectivas para el error de conexión a base de datos en PrestaShop cuando el resto falla.
Preguntas frecuentes (FAQ) sobre el error de conexión
1. ¿Por qué me aparece este error justo después de cambiar la contraseña de mi base de datos?
Porque has cambiado la contraseña en Plesk, pero PrestaShop sigue intentando conectarse con la antigua. Debes actualizar el archivo parameters.php como se explica en la Causa 1.
2. ¿Puedo perder mis productos si borro la base de datos?
Sí, absolutamente. Nunca borres la base de datos para solucionar este error. Eso eliminaría todos tus productos, pedidos y clientes de forma permanente. Si no estás seguro de qué hacer, contacta con tu proveedor de hosting.
3. El error dice "Link to database cannot be established: Access denied for user". ¿Qué significa?
Significa que el usuario y la contraseña que PrestaShop está enviando no son correctos. Es un problema de autenticación. Revisa el archivo parameters.php y asegúrate de que coinciden exactamente con los datos de Plesk.
4. ¿Qué hago si he probado todo y sigue sin funcionar?
Si has reiniciado MySQL, verificado los datos de conexión, reparado las tablas y el problema persiste, es hora de contactar con el soporte técnico de tu hosting. Es posible que haya un problema más profundo en el servidor que solo ellos pueden solucionar.
5. ¿Este error tiene relación con el SEO de mi tienda?
Sí, indirectamente. Si tu tienda está caída y muestra este error durante horas o días, los motores de búsqueda como Google pueden penalizarte temporalmente en los resultados de búsqueda. Por eso es crucial solucionarlo lo antes posible para minimizar el impacto en tu posicionamiento web.
Resumen y consejo final
El error de conexión a base de datos en PrestaShop es un dolor de cabeza, pero como has visto, tiene solución. La clave está en el orden: primero reinicia el servicio, luego verifica los datos de conexión y, si es necesario, repara las tablas.
Para evitar este problema en el futuro, te recomendamos:
- Anota siempre las contraseñas que crees para las bases de datos.
- Realiza copias de seguridad periódicas de tu tienda y de la base de datos.
- No modifiques los archivos de configuración sin saber exactamente lo que estás haciendo.
- Mantén tu PrestaShop actualizado a la última versión.
Con un poco de paciencia y siguiendo estos pasos, tu tienda online volverá a estar operativa en poco tiempo. ¡Mucha suerte!
