Solución a problemas de conexión a base de datos en PrestaShop con Plesk
¿Tu tienda PrestaShop de repente muestra un mensaje de error de base de datos y no sabes qué hacer? No te preocupes, es uno de los problemas más comunes al gestionar una tienda online en Plesk. Este artículo te guiará paso a paso para solucionar el error de conexión a la base de datos de PrestaShop, explicando las causas más frecuentes y sus soluciones prácticas. Al final, incluyo una sección de preguntas frecuentes para resolver tus dudas más comunes.
¿Por qué aparece el error de conexión a la base de datos en PrestaShop?
El error de conexión a la base de datos suele manifestarse con un mensaje como "Error de conexión a la base de datos" o "No se puede conectar a la base de datos". Esto ocurre cuando PrestaShop no puede establecer comunicación con el servidor MySQL o MariaDB que almacena toda la información de tu tienda (productos, clientes, pedidos, configuraciones).
Las causas más habituales son:
- Credenciales incorrectas: El usuario, contraseña o nombre de la base de datos han cambiado.
- Servidor de base de datos caído: MySQL/MariaDB no está funcionando.
- Límite de conexiones superado: Demasiadas conexiones simultáneas agotan el pool.
- Permisos de usuario revocados: El usuario de la base de datos perdió acceso a la base de datos.
- Archivo de configuración corrupto: El archivo
app/config/parameters.phptiene datos erróneos. - Problemas de red o firewall: Bloqueo entre el servidor web y el servidor de base de datos.
A continuación, te explico cómo diagnosticar y resolver cada uno de estos escenarios.
Paso 1: Verificar que el servicio MySQL/MariaDB está activo en Plesk
Lo primero es comprobar que el motor de base de datos esté funcionando. En Plesk, puedes hacerlo desde la interfaz gráfica o mediante SSH.
Desde el panel de Plesk
- Inicia sesión en Plesk con tu usuario administrador.
- Ve a Herramientas y ajustes > Administración de servicios.
- Busca el servicio MySQL o MariaDB en la lista.
- Verifica que su estado sea Activo (verde). Si aparece rojo o detenido, haz clic en Iniciar.
[TIP] Si no ves el servicio, puede que esté oculto. En la parte superior derecha, activa "Mostrar servicios avanzados".
Desde la línea de comandos (SSH)
Si tienes acceso SSH, ejecuta:
systemctl status mariadb
# o si usas MySQL
systemctl status mysql
Si el servicio no está activo, inícialo con:
systemctl start mariadb
Y habilítalo para que arranque automáticamente:
systemctl enable mariadb
Paso 2: Comprobar las credenciales de la base de datos de PrestaShop
PrestaShop guarda los datos de conexión en el archivo app/config/parameters.php. Si has cambiado la contraseña de la base de datos o has movido la instalación, este archivo puede tener información obsoleta.
Localizar el archivo de configuración
El archivo se encuentra en la raíz de tu instalación de PrestaShop. Por ejemplo: /var/www/vhosts/tudominio.com/httpdocs/app/config/parameters.php.
Leer las credenciales actuales
Abre el archivo con un editor de texto (puedes usar el administrador de archivos de Plesk). Busca estas líneas:
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'nombre_base_datos',
'database_user' => 'usuario_base_datos',
'database_password' => 'contraseña_base_datos',
Anota estos valores. Luego, ve a Bases de datos en Plesk y verifica que el usuario, contraseña y nombre de la base de datos coincidan exactamente.
[WARNING] Si cambiaste la contraseña de la base de datos desde Plesk, debes actualizar también este archivo. De lo contrario, PrestaShop intentará conectarse con la contraseña antigua.
Corregir credenciales
Si encuentras diferencias, edita el archivo parameters.php con los valores correctos. Guarda los cambios y vuelve a cargar tu tienda.
Paso 3: Verificar los permisos del usuario de la base de datos
A veces el usuario de la base de datos tiene permisos insuficientes. En Plesk:
- Ve a Bases de datos.
- Haz clic en el nombre de la base de datos de tu PrestaShop.
- En la sección Usuarios, verifica que el usuario asociado tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.).
- Si no es así, edita el usuario y marca todas las casillas de permisos.
[INFO] Es recomendable que el usuario tenga privilegios completos sobre la base de datos para que PrestaShop funcione correctamente, especialmente durante actualizaciones o instalación de módulos.
Paso 4: Probar la conexión manualmente desde la línea de comandos
Para asegurarte de que las credenciales son correctas, prueba conectarte directamente al servidor de base de datos.
Desde SSH, ejecuta:
mysql -u usuario_base_datos -p -h localhost nombre_base_datos
Te pedirá la contraseña. Si la conexión es exitosa, verás el prompt mysql>. Si recibes un error como "Access denied for user", las credenciales son incorrectas.
Para salir del cliente MySQL, escribe exit y presiona Enter.
Paso 5: Verificar el límite de conexiones simultáneas
Si tu tienda recibe mucho tráfico o tienes muchos procesos en segundo plano, podrías superar el límite de conexiones simultáneas de MySQL.
Consultar el límite actual
Conéctate a MySQL y ejecuta:
SHOW VARIABLES LIKE 'max_connections';
Aumentar el límite
Si el valor es muy bajo (por ejemplo, 150), puedes incrementarlo editando el archivo de configuración de MySQL (/etc/my.cnf o /etc/mysql/my.cnf). Busca la línea:
max_connections = 300
Cámbiala a un valor mayor, como 500, y reinicia el servicio:
systemctl restart mariadb
[WARNING] No subas este valor sin control, ya que cada conexión consume memoria. Si tienes un servidor con poca RAM, un valor muy alto puede provocar caídas del sistema.
Paso 6: Revisar el archivo de configuración de PrestaShop por corrupción
A veces, el archivo parameters.php se daña por una actualización fallida o un error al editar. Si sospechas de corrupción, puedes regenerarlo.
Crear una copia de seguridad
Antes de hacer cambios, respalda el archivo original:
cp /ruta/a/tu/prestashop/app/config/parameters.php /ruta/a/tu/prestashop/app/config/parameters.php.bak
Regenerar el archivo
PrestaShop 1.7+ incluye una herramienta de consola para regenerar la configuración:
cd /ruta/a/tu/prestashop
php bin/console prestashop:configure --database_host=localhost --database_name=nombre_base_datos --database_user=usuario_base_datos --database_password=contraseña_base_datos
Si no funciona, deberás editar manualmente el archivo con los valores correctos, siguiendo la estructura original.
Paso 7: Verificar la configuración del servidor web y firewall
En algunos casos, el firewall del servidor (como iptables) o la configuración de Plesk pueden bloquear la conexión al puerto de MySQL (3306).
Comprobar que el puerto está abierto
Desde SSH, ejecuta:
netstat -tlnp | grep 3306
Deberías ver una línea como tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN. Si no aparece, MySQL no está escuchando en ese puerto.
Permitir conexiones locales
Si PrestaShop y la base de datos están en el mismo servidor, asegúrate de que MySQL acepte conexiones desde localhost. En el archivo de configuración de MySQL, busca la línea bind-address y verifica que sea 127.0.0.1 o 0.0.0.0.
Paso 8: Forzar la reparación de tablas de la base de datos
Si la base de datos está corrupta, PrestaShop puede fallar al conectar. Puedes reparar las tablas desde Plesk o MySQL.
Desde Plesk
- Ve a Bases de datos.
- Haz clic en el nombre de la base de datos.
- Selecciona Reparar base de datos. Plesk ejecutará
mysqlcheck -r.
Desde la línea de comandos
mysqlcheck -u usuario_base_datos -p --auto-repair nombre_base_datos
FAQ: Preguntas frecuentes sobre errores de conexión a base de datos en PrestaShop con Plesk
¿Qué hago si después de seguir todos los pasos el error persiste?
Prueba a reiniciar tanto el servicio de MySQL como el servidor web (Apache/Nginx). A veces un reinicio limpia conexiones colgadas. Si aún así falla, revisa los logs de MySQL en /var/log/mysql/error.log para mensajes más específicos.
¿Puedo perder datos al reparar la base de datos?
No, la reparación solo corrige índices y estructuras dañadas, no elimina datos. Siempre es recomendable hacer una copia de seguridad antes por si acaso.
¿Cómo hago una copia de seguridad de la base de datos en Plesk?
Ve a Bases de datos, selecciona tu base de datos y haz clic en Exportar dump. Descarga el archivo SQL generado. También puedes usar la herramienta de copia de seguridad de Plesk desde Herramientas y ajustes > Administrador de copias de seguridad.
¿El error puede deberse a un plugin o tema de PrestaShop?
Sí, algún módulo mal codificado puede saturar las conexiones o modificar el archivo de configuración. Desactiva temporalmente todos los módulos no esenciales renombrando la carpeta /modules (por ejemplo, a /modules_backup) y prueba de nuevo.
¿Qué significa "Too many connections" en el error?
Significa que el servidor MySQL ha alcanzado el límite máximo de conexiones simultáneas permitido. Debes aumentar el valor de max_connections como expliqué en el Paso 5.
¿Plesk tiene alguna herramienta específica para diagnosticar problemas de base de datos?
Sí, en Herramientas y ajustes > Diagnóstico de bases de datos puedes ejecutar comprobaciones de integridad y reparar tablas desde la interfaz gráfica.
¿Debo cambiar el host de la base de datos de "localhost" a la IP del servidor?
Solo si tu base de datos está en un servidor diferente. Si está en el mismo servidor, usa siempre localhost para evitar problemas de resolución DNS o reglas de firewall.
Conclusión
Los errores de conexión a la base de datos en PrestaShop con Plesk son frustrantes, pero casi siempre tienen solución siguiendo estos pasos. Recuerda empezar por lo más básico: verificar que el servicio MySQL esté activo y que las credenciales en el archivo parameters.php sean correctas. Si nada funciona, no dudes en consultar los logs del sistema o contactar con tu proveedor de hosting.
Mantener copias de seguridad periódicas y monitorear el estado de tu servidor te ayudará a prevenir estos problemas. Si tu tienda tiene mucho tráfico, considera optimizar las consultas de base de datos y aumentar los recursos del servidor.
Espero que esta guía te haya sido útil. ¡Tu tienda PrestaShop volverá a funcionar en poco tiempo!
