Maison > base de données > tutoriel mysql > Pourquoi MySQL renvoie-t-il « Accès refusé » même avec les informations d'identification correctes ?

Pourquoi MySQL renvoie-t-il « Accès refusé » même avec les informations d'identification correctes ?

Linda Hamilton
Libérer: 2024-12-14 05:56:11
original
967 Les gens l'ont consulté

Why Does MySQL Return

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';
Copier après la connexion

Considérations supplémentaires

  1. Connexion via un socket : lors de l'authentification via un socket, il est possible de utilisez l'utilisateur 'bill'@'%'.
  2. Impact du type de connexion : La connexion TCP ou la connexion socket n'affecte pas le processus d'authentification, mais seuls les utilisateurs anonymes peuvent se connecter via un socket.
  3. Mot de passe de l'utilisateur anonyme : fournir le mot de passe de l'utilisateur anonyme dans la chaîne de connexion permet l'accès même en spécifiant un nom d'utilisateur différent, en raison des règles de tri.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal