La connexion à la base de données est le cœur du fonctionnement d’une boutique PrestaShop : elle stocke les produits, commandes, clients et toutes les données critiques. Une interruption de cette connexion (« Access denied - Link to database cannot be established ») bloque l’accès au site et empêche toute vente. Cet article détaille les causes, les étapes de diagnostic et les bonnes pratiques pour corriger et prévenir ces erreurs.
1. Comprendre l’erreur de connexion à la base de données
L’erreur « Access denied - Link to database cannot be established » signifie que PrestaShop n’arrive pas à établir le lien entre votre site et le serveur MySQL/MariaDB. Les causes principales sont :
- Mauvais identifiants de connexion (nom d’utilisateur, mot de passe, nom de la base, hôte)
- Droits insuffisants de l’utilisateur MySQL
- Serveur de base de données inaccessible ou hors ligne
- Problèmes de configuration serveur ou d’hébergement
- Incompatibilité de version PHP/MySQL ou surcharge du serveur
2. Étapes de diagnostic et de résolution
Vérifier les informations de connexion
Les paramètres de connexion se trouvent dans le fichier /app/config/parameters.php (PrestaShop 1.7+) ou /config/settings.inc.php (versions antérieures). Vérifiez que les valeurs suivantes correspondent à celles fournies par votre hébergeur :
-
database_host(ouDB_SERVER) -
database_name(ouDB_NAME) -
database_user(ouDB_USER) -
database_password(ouDB_PASSWD)
Une simple faute de frappe dans ces champs peut générer l’erreur. En cas de doute, testez la connexion via un outil externe (PHPMyAdmin, script PHP de test).
Vérifier les autorisations et privilèges MySQL
L’utilisateur MySQL configuré doit disposer des droits suffisants (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER) sur la base de données concernée. Vérifiez ou attribuez ces droits via l’interface de gestion de votre hébergeur (cPanel, Plesk) ou une commande SQL adaptée :
GRANT ALL PRIVILEGES ON nom_base.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;
Des droits insuffisants peuvent empêcher la connexion ou l’enregistrement de données.
S’assurer que le serveur de base de données est en ligne
Le serveur MySQL/MariaDB doit être opérationnel et accessible depuis votre hébergement web. Vérifiez :
- Qu’il n’y a pas de maintenance ou d’incident côté hébergeur
- Que le nom d’hôte (
localhost, IP, ou URL) est correct - Que le port utilisé est ouvert (par défaut, le plus souvent, 3306)
Utilisez PHPMyAdmin ou un script PHP pour tester la connexion. Sur certains hébergements mutualisés, l’accès distant à la base peut être restreint.
Contrôler la compatibilité des versions et la configuration serveur
Une incompatibilité de version PHP/MySQL peut causer des erreurs de connexion. Pour vérifier ces compatibilités, rendez-vous sur l'article Configuration requise pour PrestaShop. Vérifiez également les limites serveur :
-
memory_limit(512M recommandé) -
max_execution_time(300s ou plus) -
upload_max_filesize(64M ou plus)
Adaptez la configuration sur cPanel, ou dans le fichier php.ini ou .htaccess si besoin.
Analyser les logs d’erreur
Activez le mode debug dans PrestaShop (define('_PS_MODE_DEV_', true); dans config/defines.inc.php) pour afficher les messages d’erreur détaillés. Consultez également les fichiers de logs :
-
/var/logs(PrestaShop 1.7+) - Logs du serveur web (Apache/Nginx)
- Journaux d’erreur dans cPanel/Plesk
Les messages peuvent aider à identifier une erreur de syntaxe SQL, un dépassement de quota, ou un module défectueux.
3. Cas particuliers et erreurs fréquentes
Mauvais paramètres dans parameters.php ou settings.inc.php
Une erreur dans ces fichiers est la cause la plus courante. Vérifiez chaque champ, en particulier après une migration, une restauration ou une mise à jour.
Problème de droits sur les fichiers
Les permissions doivent être 644 pour les fichiers, 755 pour les dossiers. Des droits trop ouverts (777) exposent votre site à des risques de piratage.
Surcharge ou panne du serveur MySQL
Un serveur surchargé ou une configuration inadaptée (ressources insuffisantes, timeout trop court, quotas dépassés) peut provoquer des erreurs « MySQL server has gone away » ou des pertes de connexion. Surveillez l’utilisation des ressources et demandez à votre hébergeur d’augmenter les limites si nécessaire.
Problèmes d’hébergement
Certains hébergeurs appliquent des restrictions particulières (accès distant, limitations de requêtes, version PHP). En cas de doute, contactez le support technique de votre hébergeur pour vérifier la configuration et les éventuelles restrictions en place.
4. Bonnes pratiques et prévention
- Sécurisez vos accès : n’utilisez jamais l’utilisateur root pour PrestaShop, mais un utilisateur dédié avec des droits limités.
- Changez le préfixe des tables lors de l’installation pour limiter les risques d’injection SQL.
- Mettez à jour PrestaShop et ses modules régulièrement pour bénéficier des derniers correctifs de sécurité.
- Sauvegardez fréquemment la base de données et les fichiers de configuration.
- Surveillez la sécurité (SSL, firewall, analyse antivirus) et la disponibilité du serveur.
5. Exemple de procédure de test de connexion
Vous pouvez créer un fichier test_db.php à la racine de votre site pour tester la connexion 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 !";
}
?>
Remplacez les paramètres par ceux de votre configuration. Si la connexion échoue, le message d’erreur affiché vous orientera sur la cause précise.
|
⚠️ Effacez toujours ce type de fichiers après utilisation, car ils constituent une potentielle faille de sécurité. |
6. Quand contacter votre hébergeur ou un expert ?
Si, après toutes ces vérifications, l’erreur persiste, il est probable que le problème soit lié à l’infrastructure de l’hébergeur (panne serveur, maintenance, restrictions réseau). Contactez le support technique de votre hébergeur avec les messages d’erreur détaillés et la liste des tests déjà réalisés pour accélérer la résolution.
7. Résumé des points clés
- Vérifiez et corrigez les identifiants dans le fichier de configuration
- Assurez-vous que l’utilisateur MySQL a les droits nécessaires
- Testez la disponibilité du serveur MySQL
- Contrôlez la compatibilité des versions et les ressources serveur
- Analysez les logs pour affiner le diagnostic
- Appliquez les bonnes pratiques de sécurité et de maintenance
En suivant ces instructions, la plupart des erreurs « Access denied - Link to database cannot be established » sur PrestaShop peuvent être résolues rapidement et durablement, assurant la disponibilité de votre boutique en ligne et la sécurité de vos données.