La conexión a la base de datos es el núcleo de las operaciones de la tienda PrestaShop: almacena productos, pedidos, clientes y todos los demás datos críticos. Si esta conexión se interrumpe ("Acceso denegado - No se puede establecer el enlace con la base de datos"), el acceso al sitio se bloqueará y no será posible realizar ventas. Este artículo detalla las causas, los pasos de diagnóstico y las mejores prácticas para corregir y prevenir estos errores.
1 Comprender el error de conexión a la base de datos
El error "Acceso denegado - No se puede establecer el enlace con la base de datos" significa que PrestaShop no puede establecer un enlace entre su sitio y el servidor MySQL/MariaDB. Las causas principales son :
- Datos de acceso incorrectos (nombre de usuario, contraseña, nombre de la base de datos, host)
- Derechos de usuario MySQL insuficientes
- Servidor de base de datos inaccesible o fuera de línea
- Problemas de configuración del servidor o de alojamiento
- Incompatibilidad de versión PHP/MySQL o sobrecarga del servidor
2 Pasos de diagnóstico y resolución
Comprobar los detalles de la conexión
Los parámetros de conexión se encuentran en el/app/config/parameters.php (PrestaShop 1.7+) o/config/settings.inc.php (versiones anteriores). Compruebe que los valores siguientes corresponden a los suministrados por su anfitrión:
-
database_host(oDB_SERVER) -
database_name(oDB_NAME) -
database_user(oDB_USER) -
database_password(oDB_PASSWD)
Un simple error tipográfico en estos campos puede generar un error. En caso de duda, pruebe la conexión utilizando una herramienta externa (PHPMyAdmin, script PHP de prueba).
Compruebe las autorizaciones y privilegios de MySQL
El usuario MySQL configurado debe tener derechos suficientes (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER) sobre la base de datos en cuestión. Compruebe o asigne estos derechos utilizando la interfaz de gestión de su host (cPanel, Plesk) o un comando SQL apropiado:
GRANT ALL PRIVILEGES ON nom_base.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;
La insuficiencia de derechos puede impedir la conexión o el registro de datos.
Asegúrese de que el servidor de la base de datos está en línea
El servidor MySQL/MariaDB debe estar operativo y accesible desde su alojamiento web. Por favor, compruebe :
- Sin mantenimiento ni incidencias por parte del proveedor de alojamiento
- Que el nombre del host (
localhostIP, o URL) es correcta - Que el puerto utilizado esté abierto (por defecto, suele ser 3306)
Utilice PHPMyAdmin o un script PHP para probar la conexión. En algunos sitios de alojamiento compartido, el acceso remoto a la base de datos puede estar restringido.
Compruebe la compatibilidad de la versión y la configuración del servidor
Las versiones incompatibles de PHP/MySQL pueden causar errores de conexión. Para comprobar estas compatibilidades, vaya al artículo Requisitos para PrestaShop. Compruebe también los límites del servidor:
-
memory_limit(512 M recomendado) -
max_execution_time(300 s o más) -
upload_max_filesize(64 M o más)
Adapte la configuración en cPanel, o en elphp.ini o.htaccess si es necesario.
Analizar los registros de errores
Activar el modo de depuración en PrestaShop (define('_PS_MODE_DEV_', true); enconfig/defines.inc.php) para mostrar mensajes de error detallados. Consulte también los archivos de registro :
-
/var/logs(PrestaShop 1.7+) - Registros del servidor web (Apache/Nginx)
- Registros de errores en cPanel/Plesk
Los mensajes pueden ayudar a identificar un error de sintaxis SQL, un desbordamiento de cuota o un módulo defectuoso.
3 Casos especiales y errores comunes
Parámetros erróneos enparameters.php osettings.inc.php
Un error en estos archivos es la causa más común. Compruebe cada campo, especialmente después de una migración, restauración o actualización.
Problema de derechos de archivo
Los permisos deben ser 644 para los archivos y 755 para las carpetas. Los derechos demasiado abiertos (777) exponen su sitio al riesgo de piratería.
Sobrecarga o fallo del servidor MySQL
Un servidor sobrecargado o una configuración inadecuada (recursos insuficientes, tiempo de espera demasiado corto, cuotas superadas) pueden provocar errores del tipo "El servidor MySQL se ha ido" o conexiones perdidas. Vigile el uso de los recursos y pida a su proveedor de alojamiento que aumente los límites si es necesario.
Problemas de alojamiento
Algunos hosts aplican restricciones específicas (acceso remoto, limitaciones de consulta, versión de PHP). En caso de duda, póngase en contacto con el servicio técnico de su proveedor de alojamiento web para comprobar la configuración y las restricciones existentes.
4. buenas prácticas y prevención
- Asegure su acceso: no utilice nunca el usuario root para PrestaShop, sino un usuario dedicado con derechos limitados.
- Cambie el prefijo de la tabla durante la instalación para limitar el riesgo de inyección SQL.
- Actualice PrestaShop y sus módulos con regularidad para beneficiarse de los últimos parches de seguridad.
- Realice con frecuencia copias de seguridad de la base de datos y de los archivos de configuración.
- Supervise la seguridad (SSL, cortafuegos, análisis antivirus) y la disponibilidad del servidor.
5 Ejemplo de procedimiento de prueba de conexión
Puede crear untest_db.php en la raíz de su sitio para probar la conexión MySQL :
<?php
$mysqli = new mysqli('database_host', 'database_user', 'database_password', 'database_name');
if ($mysqli->connect_errno) {
echo "Échec de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
} else {
echo "Connexion réussie à la base de données !";
}
?>
Sustituya los parámetros por los correspondientes a su configuración. Si la conexión falla, el mensaje de error mostrado le guiará hacia la causa precisa.
|
⚠️ Elimine siempre los archivos de este tipo después de utilizarlos, ya que representan un riesgo potencial para la seguridad. |
6 - ¿Cuándo debe ponerse en contacto con su proveedor de alojamiento web o con un experto?
Si, tras todas estas comprobaciones, el error persiste, es probable que el problema esté relacionado con la infraestructura del host (fallo del servidor, mantenimiento, restricciones de la red). Póngase en contacto con el servicio técnico de su proveedor de alojamiento web con mensajes de error detallados y una lista de las pruebas ya realizadas para acelerar la resolución.
7 Resumen de los puntos clave
- Compruebe y corrija los identificadores en el archivo de configuración
- Asegúrese de que el usuario MySQL tiene los derechos necesarios
- Pruebe la disponibilidad del servidor MySQL
- Compruebe la compatibilidad de la versión y los recursos del servidor
- Analizar los registros para afinar el diagnóstico
- Aplique buenas prácticas de seguridad y mantenimiento
Siguiendo estas instrucciones, la mayoría de los errores de "Acceso denegado - No se puede establecer el enlace a la base de datos" en PrestaShop pueden resolverse de forma rápida y permanente, garantizando la disponibilidad de su tienda en línea y la seguridad de sus datos.