ERREUR MySQL 1045 (28000) : accès refusé pour l'utilisateur 'bill'
Lors de la tentative de connexion à MySQL à l'aide de l'utilisateur 'bill' avec le mot de passe correct, le message d'erreur "ERREUR 1045 (28000) : Accès refusé à l'utilisateur 'bill'@'localhost' (en utilisant le mot de passe : OUI)" apparaît. Cette erreur se produit même si l'utilisateur « facture » a été créé, a obtenu tous les privilèges et a été spécifié avec l'hôte « % ».
La racine du problème
Le problème vient de l'existence possible d'un utilisateur anonyme avec un nom d'utilisateur vide et un hôte défini sur « localhost » ou « 127.0.0.1 » dans l'utilisateur MySQL. table.
Comment MySQL résout l'authentification des utilisateurs
Lorsqu'un client tente de se connecter, MySQL vérifie la table des utilisateurs et sélectionne la première ligne qui correspond au nom d'hôte et à l'utilisateur du client. nom. La sélection est triée en premier avec les valeurs d'hôte les plus spécifiques, en donnant la priorité aux noms d'hôtes littéraux et aux adresses IP.
Dans ce cas, l'utilisateur anonyme avec 'localhost' comme hôte correspond mieux à la tentative de connexion que l'utilisateur ' bill'@'%', bloquant l'accès à 'bill'.
Solution recommandée
La solution recommandée consiste à supprimer l'utilisateur anonyme, car cela peut créer des failles de sécurité. Pour ce faire, exécutez la commande suivante :
DROP USER ''@'localhost';
Considérations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!