Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL trotz korrekter Anmeldeinformationen „Zugriff verweigert' zurück?

Warum gibt MySQL trotz korrekter Anmeldeinformationen „Zugriff verweigert' zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 05:56:11962Durchsuche

Why Does MySQL Return

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

  1. Verbindung über einen Socket herstellen: Bei der Authentifizierung über einen Socket ist dies möglich Verwenden Sie den Benutzer 'bill'@'%'.
  2. Auswirkungen des Verbindungstyps: Die TCP-Verbindung oder Socket-Verbindung hat keinen Einfluss auf den Authentifizierungsprozess, sondern nur Anonyme Benutzer können sich über einen Socket verbinden.
  3. Passwort des anonymen Benutzers: Die Angabe des Passworts des anonymen Benutzers in der Verbindungszeichenfolge ermöglicht aufgrund der Sortierregeln den Zugriff auch dann, wenn ein anderer Benutzername angegeben wird.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn