Cómo solucionar el error 'PrestaShop no se conecta a la base de datos' en Plesk
¿Por qué PrestaShop pierde la conexión con la base de datos en Plesk?
Cuando ves el temido mensaje de error conexión base datos PrestaShop, el corazón se te acelera. Es uno de los fallos más comunes y, afortunadamente, uno de los más fáciles de solucionar si sigues los pasos correctos. Este error significa que tu tienda online no puede comunicarse con el servidor MySQL o MariaDB donde se almacenan tus productos, pedidos y clientes.
En un entorno Plesk, este problema suele aparecer después de mover la tienda a un nuevo servidor, tras un cambio de contraseña, al restaurar una copia de seguridad o simplemente por un fallo temporal del servicio de bases de datos. La buena noticia es que en el 90% de los casos no se pierde ningún dato y la solución está al alcance de cualquier persona, incluso sin conocimientos avanzados de programación.
A lo largo de esta guía, vamos a desglosar todas las causas posibles y te daremos soluciones paso a paso, desde las más simples hasta las más técnicas. Empezaremos por lo básico y avanzaremos gradualmente, para que puedas ir probando cada solución en orden y verificar cuál resuelve tu problema.
Primero, verifica lo más obvio: ¿el servicio de base de datos está activo?
Antes de tocar archivos de configuración o cambiar contraseñas, debemos asegurarnos de que el motor de base de datos está funcionando en tu servidor Plesk. A veces, tras una actualización del sistema o un reinicio del servidor, MySQL o MariaDB no se inicia correctamente.
Cómo comprobar el estado del servicio desde Plesk
-
Accede a tu panel de control de Plesk con tu usuario administrador o con la cuenta que tenga privilegios de gestión del servidor.
-
En el menú lateral izquierdo, busca la sección "Herramientas y utilidades" o "Administración del servidor", dependiendo de la versión de Plesk que uses (Obsidian, Onyx, etc.).
-
Dentro de esa sección, busca el apartado "Servicios" o "Gestión de servicios". Verás una lista de todos los servicios del servidor (Apache, Nginx, FTP, etc.). Localiza MySQL o MariaDB.
-
Comprueba el estado: debe aparecer como "en ejecución" o "activo". Si aparece como "detenido" o "fallo", haz clic en el botón de iniciar o reiniciar.
[TIP]: Si no encuentras la opción de servicios en Plesk, puedes usar el administrador de archivos para crear un pequeño script PHP que te diga si la base de datos responde. Pero primero intenta con la interfaz gráfica, es mucho más intuitiva.
¿Y si el servicio se detiene constantemente?
Esto puede indicar un problema de recursos del servidor (memoria RAM insuficiente) o un error en la configuración de MySQL. Si el servicio se cae solo, anota el mensaje de error y consulta los logs de MySQL en /var/log/mysql/error.log a través del administrador de archivos de Plesk.
La solución clásica: revisar el archivo de configuración parameters.php
Si el servicio de base de datos está activo, el siguiente sospechoso es el archivo de configuración de PrestaShop. Este archivo contiene las credenciales de acceso a tu base de datos: nombre de la base, usuario, contraseña y servidor. Si cualquiera de estos datos es incorrecto, PrestaShop no conecta BD Plesk.
Pasos para localizar y editar parameters.php
-
Ve a "Administrador de archivos" en Plesk.
-
Navega hasta la carpeta raíz de tu tienda PrestaShop. Normalmente es
httpdocsopublic_html, pero si instalaste PrestaShop en una subcarpeta, búscala ahí. -
Busca la carpeta
app/config/dentro de tu instalación de PrestaShop. -
Dentro de esa carpeta, encontrarás el archivo
parameters.php. Haz clic derecho sobre él y selecciona "Editar". -
Verás un contenido similar a este (en PrestaShop 1.7 y 8.x):
<?php
return array(
'parameters' => array(
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'nombre_de_tu_bd',
'database_user' => 'usuario_de_tu_bd',
'database_password' => 'tu_contraseña',
'database_prefix' => 'ps_',
'database_engine' => 'InnoDB',
// ... más configuraciones
),
);
Qué debes verificar en este archivo
-
database_host: Normalmente eslocalhosto127.0.0.1. Si tu base de datos está en otro servidor, aquí debe ir la IP o el nombre de host correcto. -
database_name: Debe coincidir exactamente con el nombre de la base de datos que creaste en Plesk. Ve a la sección "Bases de datos" en el panel de tu dominio para verificar el nombre exacto. -
database_user: Igual que el anterior, debe coincidir con el usuario de la base de datos que tienes en Plesk. -
database_password: Este es el punto más crítico. Si has cambiado la contraseña de la base de datos recientemente desde Plesk, el archivoparameters.phpseguirá teniendo la contraseña antigua. Actualízala aquí.
[WARNING]: Antes de editar este archivo, descarga una copia de seguridad del mismo. Un error de sintaxis (como una comilla mal puesta) puede provocar que PrestaShop no cargue en absoluto. Si no te sientes seguro editando código, copia el contenido a un bloc de notas, haz los cambios y pégalo de nuevo.
Cómo obtener las credenciales correctas desde Plesk
-
En Plesk, ve a tu dominio y haz clic en "Bases de datos".
-
Verás la lista de bases de datos. Haz clic en el nombre de la base que usa PrestaShop.
-
Ahí encontrarás el nombre de la base, el usuario y la opción de "Cambiar contraseña". Si no recuerdas la contraseña, cámbiala por una nueva y asegúrate de actualizarla también en el archivo
parameters.php.
El problema de las comillas y caracteres especiales en la contraseña
Un error muy común que causa el error conexión base datos PrestaShop es el uso de caracteres especiales en la contraseña que no se escapan correctamente en el archivo PHP. Por ejemplo, si tu contraseña contiene el símbolo $, ' o \, PHP puede interpretarlo de forma incorrecta.
Solución para contraseñas problemáticas
-
La forma más segura es cambiar la contraseña de la base de datos desde Plesk a una que solo contenga letras y números, sin símbolos raros.
-
Ve a "Bases de datos" en Plesk, selecciona tu base de datos y haz clic en "Cambiar contraseña".
-
Introduce una nueva contraseña alfanumérica, por ejemplo:
MiTienda2024Segura. -
Actualiza el archivo
parameters.phpcon esa nueva contraseña.
[TIP]: Si no quieres cambiar la contraseña, puedes escapar los caracteres especiales en PHP añadiendo una barra invertida antes. Por ejemplo, si tu contraseña es pa$sword, deberías escribirla como pa\$sword` en el archivo. Pero esto es propenso a errores, así que recomendamos la opción de cambiar la contraseña.
Verificar los permisos del usuario de la base de datos
A veces las credenciales son correctas, pero el usuario de la base de datos no tiene los permisos necesarios para conectarse desde el host donde está PrestaShop. Esto es especialmente común después de mover la tienda a otro servidor.
Cómo comprobar y otorgar permisos en Plesk
-
En Plesk, ve a "Bases de datos" y haz clic en el nombre de tu base de datos.
-
Busca la sección "Usuarios" o "Privilegios".
-
Asegúrate de que el usuario asociado a PrestaShop tenga marcados los privilegios ALL PRIVILEGES o al menos: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP.
-
Si el usuario no tiene todos los permisos, márcalos y pulsa "Aceptar".
[INFO]: En la mayoría de los casos, Plesk otorga todos los privilegios automáticamente al crear un usuario. Pero si has importado la base de datos desde otro servidor, es posible que los permisos no se hayan transferido correctamente.
Solucionar el error tras una restauración o migración
Si el error apareció después de restaurar una copia de seguridad o migrar la tienda desde otro hosting, es muy probable que las credenciales en parameters.php no coincidan con las de la nueva base de datos en Plesk. En este caso, el proceso es el siguiente:
Pasos para restaurar correctamente
-
Crea una base de datos nueva en Plesk (o usa la que ya tienes vacía).
-
Anota el nombre de la base, el usuario y establece una contraseña que conozcas.
-
Importa el archivo SQL de tu copia de seguridad en esa base de datos. Puedes hacerlo desde "Bases de datos" > "Importar dump" en Plesk.
-
Edita el archivo
parameters.phpde PrestaShop con las nuevas credenciales. -
Guarda los cambios y prueba a cargar tu tienda.
[WARNING]: Si has importado una base de datos que contiene la tabla ps_configuration con URLs antiguas, es posible que la tienda cargue pero con errores de imágenes o enlaces. Esto es otro problema diferente al de conexión, pero conviene tenerlo en cuenta.
Probar la conexión manualmente con un script PHP
Para asegurarte de que el problema es de PrestaShop y no del servidor, puedes crear un pequeño script de prueba que intente conectarse a la base de datos. Esto te dará información más precisa.
Cómo crear el script de prueba
-
Ve al "Administrador de archivos" de Plesk.
-
En la carpeta raíz de tu dominio (normalmente
httpdocs), crea un archivo llamadotest_db.php. -
Edita el archivo y pega este código:
<?php
$host = 'localhost';
$user = 'tu_usuario';
$pass = 'tu_contraseña';
$dbname = 'tu_base_datos';
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
die("Error de conexión: " . $conn->connect_error);
} else {
echo "¡Conexión exitosa a la base de datos!";
}
$conn->close();
?>
-
Sustituye los valores de host, usuario, contraseña y nombre de base por los que tienes en Plesk.
-
Guarda el archivo y accede a él desde tu navegador:
https://tudominio.com/test_db.php. -
Si ves "¡Conexión exitosa!", el problema está en la configuración de PrestaShop. Si ves un error de conexión, el problema está en las credenciales o en el servicio de base de datos.
[TIP]: No olvides eliminar el archivo test_db.php después de usarlo. Dejarlo en el servidor es un riesgo de seguridad porque expone información sobre tu base de datos.
El puerto de conexión a la base de datos
Aunque es menos común, a veces el puerto de conexión es incorrecto. Por defecto, MySQL usa el puerto 3306. Si tu servidor usa un puerto diferente, PrestaShop no podrá conectarse.
Cómo especificar el puerto en parameters.php
En el archivo parameters.php, busca la línea 'database_port' => ''. Si tu servidor usa un puerto diferente, deberías ponerlo aquí. Por ejemplo:
'database_port' => '3307',
[INFO]: En la mayoría de instalaciones de Plesk, el puerto está vacío y se usa el 3306 por defecto. Solo modifica esto si tu proveedor de hosting te ha indicado un puerto específico.
Limpiar la caché de PrestaShop
A veces, PrestaShop guarda en caché la configuración de la base de datos. Incluso después de corregir el archivo parameters.php, la tienda sigue mostrando el error porque está usando la caché antigua.
Cómo limpiar la caché manualmente
-
Ve al "Administrador de archivos" en Plesk.
-
Navega hasta la carpeta raíz de PrestaShop.
-
Busca la carpeta
var/cache(en PrestaShop 1.7 y 8.x) ocache(en versiones anteriores). -
Elimina todos los archivos y subcarpetas dentro de
var/cache(ocache). No elimines la carpeta en sí, solo su contenido. -
Después de limpiar la caché, intenta cargar tu tienda de nuevo.
[TIP]: También puedes desactivar la caché desde el archivo parameters.php buscando la línea 'cache_enabled' => true y cambiándola a false. Esto te ayudará a ver los cambios de configuración de inmediato.
Solución avanzada: revisar los logs de error
Si ninguna de las soluciones anteriores funciona, es hora de mirar los registros de error. Plesk guarda los logs de PHP y MySQL en ubicaciones específicas.
Dónde encontrar los logs en Plesk
-
En Plesk, ve a "Archivos" > "Registros" o directamente al "Administrador de archivos" y navega a la carpeta
logsde tu dominio. -
Busca archivos como
error_log,php_error.logomysql_error.log. -
Abre el archivo más reciente y busca mensajes relacionados con la conexión a la base de datos. Los mensajes típicos incluyen:
- "Access denied for user"
- "Connection refused"
- "Unknown database"
[WARNING]: Los logs pueden ser muy extensos y técnicos. Si no entiendes los mensajes, copia el texto relevante y búscalo en Google o consúltalo con tu proveedor de hosting. No intentes modificar configuraciones avanzadas de MySQL sin saber lo que haces.
Si todo lo demás falla: contactar con el soporte
Después de probar todas estas soluciones, si PrestaShop no conecta BD Plesk, es momento de buscar ayuda profesional. A veces el problema está en el servidor a un nivel más profundo, como un error en el archivo de configuración de MySQL o un problema de red interna.
Qué información debes tener preparada
- El mensaje de error exacto que muestra PrestaShop.
- La versión de PrestaShop que usas.
- La versión de Plesk y del sistema operativo del servidor.
- Los logs de error de PHP y MySQL.
- Confirmación de que el servicio de base de datos está activo.
- El contenido del archivo
parameters.php(sin mostrar la contraseña por seguridad).
[INFO]: Si tu hosting es gestionado, el soporte técnico debería poder resolver el problema rápidamente. Si tienes un servidor dedicado o VPS sin gestión, tendrás que investigar más a fondo o contratar a un administrador de sistemas.
Preguntas frecuentes sobre el error de conexión a la base de datos en PrestaShop
¿Perderé mis datos si borro la carpeta de caché?
No, la caché solo contiene archivos temporales que se regeneran automáticamente. Tus productos, pedidos y clientes están en la base de datos, no en la caché.
¿Puedo cambiar la contraseña de la base de datos sin afectar a mi tienda?
Sí, pero debes actualizar inmediatamente el archivo parameters.php con la nueva contraseña. Si no lo haces, PrestaShop no podrá conectarse hasta que lo actualices.
¿Por qué me aparece este error después de renovar el hosting?
Es muy común que al renovar el hosting o cambiar de plan, la IP del servidor cambie. Si tu base de datos usa una IP específica en database_host, deberás actualizarla. También es posible que las credenciales se hayan restablecido.
¿Qué diferencia hay entre MySQL y MariaDB?
Son motores de bases de datos compatibles entre sí. Plesk puede usar cualquiera de los dos. La solución es la misma para ambos, solo cambia
