Le serveur de base de données a bien reçu la demande de connexion, mais il refuse l’utilisateur ou le mot de passe. « using password: YES » signifie qu’un mot de passe a été envoyé, sans être accepté ; « NO », qu’aucun mot de passe n’a été transmis. Côté visiteurs, WordPress affiche en même temps « Error establishing a database connection ».
Pourquoi cette erreur apparaît
- Le mot de passe de l’utilisateur de la base a été changé chez l’hébergeur sans être reporté dans wp-config.php.
- Après une migration, wp-config.php contient encore les identifiants de l’ancien hébergement.
- L’utilisateur existe mais n’a pas reçu de droits sur cette base : c’est la variante « to database ».
- Le mot de passe a été mal recopié, ou contient une apostrophe ou une barre oblique inversée (), deux caractères que PHP traite à part entre apostrophes dans wp-config.php.
- L’utilisateur n’est autorisé que depuis certaines adresses, et la partie située après @ ne correspond pas.
Comment corriger le problème
Retrouver les identifiants officiels
Dans l’espace client de l’hébergement, ouvrez la rubrique des bases de données : vous y trouverez le nom exact de la base et de son utilisateur, et souvent l’adresse du serveur. Le mot de passe n’y est généralement pas réaffiché ; il faudra le redéfinir si vous ne l’avez plus.
Corriger DB_USER et DB_PASSWORD
Dans wp-config.php, remplacez les valeurs par celles de l’espace client, entre apostrophes droites, sans espace avant ni après. Si le mot de passe contient une apostrophe ou une barre oblique inversée, choisissez-en plutôt un nouveau, fait de lettres, de chiffres et de signes simples.
define( 'DB_USER', 'monsite_wp' );
define( 'DB_PASSWORD', 'nouveau-mot-de-passe' );
Redéfinir le mot de passe de l’utilisateur
Si vous n’avez plus le mot de passe, créez-en un pour cet utilisateur depuis l’espace client, puis reportez-le aussitôt dans wp-config.php. Tout autre site ou outil qui utilise le même utilisateur devra être mis à jour lui aussi.
Rattacher l’utilisateur à la base
Pour la variante « to database », l’utilisateur existe mais n’a pas accès à cette base. Dans cPanel, la rubrique Bases de données MySQL permet d’ajouter l’utilisateur à la base avec tous les privilèges ; les autres interfaces proposent une option équivalente.
Contrôler les droits en SQL
Sur un serveur que vous administrez, connectez-vous en administrateur et vérifiez les droits accordés. La partie après @ compte : un utilisateur créé pour localhost ne peut pas se connecter depuis une autre adresse.
SHOW GRANTS FOR 'monsite_wp'@'localhost';
GRANT ALL PRIVILEGES ON monsite.* TO 'monsite_wp'@'localhost';
Avant de changer un mot de passe de base, gardez une copie de wp-config.php avec les anciennes valeurs : elle permet de revenir en arrière si un autre outil s’en servait.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur