Chapitre 18 · 18.6
« Error establishing a database connection »
Le message Error establishing a database connection (ou en français Erreur lors de l'établissement d'une connexion à la base de données) signifie que votre site web ne peut pas atteindre la base de données ou n'est pas autorisé à s'y connecter. Vos fichiers sont toujours là, et votre base de données aussi dans la plupart des cas. Dans neuf cas sur dix, quelque chose ne va pas dans les données que votre site utilise pour se connecter.
Causes, des plus fréquentes aux plus rares
1. Les données dans le fichier de configuration sont incorrectes
Cela arrive surtout après un déménagement, une nouvelle installation ou la modification d'un mot de passe. Vérifiez comme suit :
- Ouvrez dans DirectAdmin Databases. Vous y voyez le nom complet de votre base de données et les utilisateurs qui y sont liés (voir Créer une base de données et Utilisateurs de base de données, droits et mots de passe).
- Ouvrez dans Gestionnaire de fichiers le fichier de configuration de votre site. Pour WordPress, il s'agit de wp-config.php dans public_html.
- Comparez les quatre valeurs :
- DB_NAME : le nom complet de la base de données, avec votre nom d'utilisateur DA et un trait de soulignement devant, comme wtsilefl_shop.
- DB_USER : le nom complet de l'utilisateur de la base de données, également avec ce préfixe.
- DB_PASSWORD : le mot de passe de cet utilisateur de base de données. Ce n'est pas votre mot de passe DA.
- DB_HOST : localhost.
Vous n'êtes pas sûr du mot de passe ? Attribuez à l'utilisateur de la base de données un nouveau mot de passe dans DirectAdmin et indiquez exactement ce mot de passe dans wp-config.php. Faites attention aux guillemets et aux espaces.
Pour d'autres systèmes, le fichier porte un autre nom, par exemple configuration.php pour Joomla, app/config/parameters.php pour PrestaShop ou .env pour Laravel.
2. L'utilisateur n'est plus lié à la base de données
Un utilisateur de base de données doit disposer de droits sur la base de données. Vérifiez dans Databases si l'utilisateur est bien associé à la bonne base de données. Si ce n'est pas le cas, liez-le à nouveau (voir Utilisateurs de base de données, droits et mots de passe).
3. La base de données est vide ou n'a pas été importée
Si vous avez déménagé votre site, vérifiez dans phpMyAdmin si les tables s'y trouvent réellement (voir Ouvrir et utiliser phpMyAdmin). S'il n'y a pas de tables, importez à nouveau la base de données (voir Importer une base de données, y compris les fichiers volumineux).
4. Tables endommagées
Ne recevez-vous le message que parfois, ou WordPress signale-t-il qu'une ou plusieurs tables ne sont pas disponibles ? Vérifiez et réparez la base de données (voir Vérifier, réparer et optimiser une base de données).
5. Trop de connexions
Voyez-vous dans le journal d'erreurs Too many connections ou max_user_connections ? Dans ce cas, votre site établit trop de connexions simultanées à la base de données, souvent à cause d'une extension très sollicitée ou mal conçue, ou de robots. Lisez Mon site web est lent.
6. L'espace de stockage est plein
Un espace disque saturé peut également provoquer des dysfonctionnements de la base de données. Consultez le tableau de bord sous Espace Disque (voir Stockage plein : où se trouve l'espace utilisé ?).
7. Une panne
Très rarement, cela vient du serveur de base de données lui-même. Consultez alors Pannes et maintenance pour voir si quelque chose est signalé.
Vérifier si les données sont correctes
Si vous pouvez voir les tables dans phpMyAdmin depuis DirectAdmin, c'est que la base de données existe et qu'elle est bien présente. Si vous recevez toujours le message malgré cela, le problème se situe presque certainement dans le fichier de configuration de votre site.
Astuce : Cela fonctionnait encore hier et vous ne savez pas ce qui a changé ? Avec WebOké Backups dans Mon WebOké, vous pouvez placer une copie de la base de données d'un moment antérieur à côté de la version actuelle, sous un nouveau nom. Vous pouvez ainsi comparer sans risque (voir Est-ce aussi possible dans Mon WebOké ? WebOké Backups).
