Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL trotz korrekter Anmeldeinformationen „Zugriff verweigert' zurück?
MySQL-FEHLER 1045 (28000): Zugriff für Benutzer „bill“ verweigert
Beim Versuch, über den Benutzer „bill“ eine Verbindung zu MySQL herzustellen mit dem richtigen Passwort erscheint die Fehlermeldung „ERROR 1045 (28000): Access denied for user.“ 'bill'@'localhost' (mit Passwort: JA)“ erscheint. Dieser Fehler tritt auf, obwohl der Benutzer „bill“ erstellt, alle Berechtigungen gewährt und mit dem Host „%“ angegeben wurde.
Die Wurzel des Problems
Das Problem ergibt sich aus der möglichen Existenz eines anonymen Benutzers mit einem leeren Benutzernamen und einem Host, der auf „localhost“ oder „127.0.0.1“ im MySQL-Benutzer eingestellt ist Tabelle.
So löst MySQL die Benutzerauthentifizierung auf
Wenn ein Client versucht, eine Verbindung herzustellen, überprüft MySQL die Benutzertabelle und wählt die erste Zeile aus, die dem Hostnamen und Benutzer des Clients entspricht Name. Die Auswahl wird nach den spezifischsten Hostwerten zuerst sortiert, wobei wörtlichen Hostnamen und IP-Adressen Vorrang eingeräumt wird.
In diesem Fall passt der anonyme Benutzer mit „localhost“ als Host besser zum Verbindungsversuch als der Benutzer „ bill'@'%', blockiert den Zugriff auf 'bill'.
Empfohlene Lösung
Die empfohlene Lösung ist Löschen der anonyme Benutzer, da dies zu Sicherheitslücken führen kann. Führen Sie dazu den folgenden Befehl aus:
DROP USER ''@'localhost';
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL trotz korrekter Anmeldeinformationen „Zugriff verweigert' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!