« Access denied for user ‘x’@’localhost’ (using password: YES) » : accès à la base refusé

Fiche du décodeur d'erreurs, mise à jour le 12 octobre 2026

BloquantBase de données
Le message affiché
Access denied for user 'monsite_wp'@'localhost' (using password: YES)
Autres formulations du même message 5
  • Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'monsite_wp'@'localhost' (using password: YES)
  • Access denied for user 'monsite_wp'@'localhost' (using password: NO)
  • Access denied for user 'monsite_wp'@'localhost' to database 'monsite'
  • SQLSTATE[HY000] [1045] Access denied for user 'monsite_wp'@'localhost' (using password: YES)
  • #1045 - Access denied for user 'root'@'localhost' (using password: NO)

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.

Le guide completLes erreurs de connexion à la base de données WordPress

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