Heim > Datenbank > MySQL-Tutorial > Warum gibt MySQL trotz korrekter Anmeldeinformationen den Fehler 1045 zurück: Zugriff verweigert?

Warum gibt MySQL trotz korrekter Anmeldeinformationen den Fehler 1045 zurück: Zugriff verweigert?

DDD
Freigeben: 2024-12-17 04:28:25
Original
733 Leute haben es durchsucht

Why Does MySQL Return Error 1045: Access Denied Even with Correct Credentials?

MySQL-Fehler 1045: Zugriff für Benutzer 'bill'@'localhost' trotz korrekter Anmeldeinformationen verweigert

Beim Versuch, auf eine entfernte MySQL-Datenbank zuzugreifen Über die Befehlszeile können Benutzer gelegentlich auf die Meldung „Fehler 1045: Zugriff verweigert für Benutzer ‚bill‘@‘localhost‘“ stoßen. Dies zeigt an, dass die Verbindung trotz Angabe der korrekten Anmeldeinformationen abgelehnt wurde.

Untersuchung:

Der Benutzer hat einen neuen Benutzer mit dem Namen „bill“ erstellt und dem Benutzer alle erforderlichen Informationen gewährt Berechtigungen und verließ dann das Root-Benutzerkonto. Nachfolgende Versuche, sich als Benutzer „bill“ vom lokalen Computer („localhost“) anzumelden, führen jedoch zu dem Fehler.

Ursache:

Dies kommt häufig vor Das Problem entsteht durch das Vorhandensein eines anonymen Benutzers (ein Benutzer mit einem leeren Benutzernamen und „localhost“ als Host) in der Tabelle „mysql.user“. Bei der Verbindung von „localhost“ priorisiert der Server übereinstimmende Benutzerkonten basierend auf dem spezifischsten Hostnamen oder der spezifischsten IP-Adresse.

Lösung 1: Anonymen Benutzer entfernen

Zur Lösung Um das Problem zu beheben, entfernen Sie den anonymen Benutzer aus der Tabelle „mysql.user“:

DELETE FROM mysql.user WHERE user = '' AND host = 'localhost';
Nach dem Login kopieren

Lösung 2 (Für MySQL-Versionen >= 5.7):

Wenn Sie MySQL Version 5.7 oder höher verwenden, können Sie die Verwendung anonymer Konten über die Variable „skip_name_resolve“ deaktivieren:

SET GLOBAL skip_name_resolve = ON;
Nach dem Login kopieren

Zusätzliche Überlegungen:

Sockel Verbindungen:

Im bereitgestellten Beispiel stellt der Benutzer eine Verbindung über einen Socket her. Es ist wichtig sicherzustellen, dass die Felder „Benutzer“ und „Passwort“ ordnungsgemäß angegeben sind, da alle im Anmeldepfad konfigurierten anonymen Benutzer möglicherweise die bereitgestellten Anmeldeinformationen überschreiben können.

TCP-Verbindungen:

Bei der Verbindung über TCP sollte das Flag -h verwendet werden, um den Hostnamen oder die IP-Adresse anzugeben, im Gegensatz zu localhost:

mysql -u bill -p -hremote_hostname
Nach dem Login kopieren

Leere Benutzernamen:

Einige Client-Bibliotheken verarbeiten leere Benutzernamen nicht ordnungsgemäß. Anstelle von „“ sollte das „@“-Symbol verwendet werden, um einen anonymen Benutzer zu kennzeichnen:

mysql -u'@'localhost'-ppassword
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt MySQL trotz korrekter Anmeldeinformationen den Fehler 1045 zurück: Zugriff verweigert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage