Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer „Benutzername' @ „localhost'?

Warum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer „Benutzername' @ „localhost'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-01 16:02:14354Durchsuche

Why Am I Getting

Zugriff verweigert für Benutzer 'Benutzername'@'localhost'

Die Fehlermeldung „SQLSTATE[HY000] [1045] Zugriff verweigert für Benutzer 'Benutzername'@'localhost '" gibt an, dass der angegebene Benutzer keinen Zugriff auf die Datenbank hat. Dies kann passieren, weil der Benutzer nicht existiert, das Passwort falsch ist oder der Benutzer nicht über die erforderlichen Berechtigungen verfügt.

Benutzerexistenz überprüfen

Um zu überprüfen, ob der Benutzer existiert, führen Sie Folgendes aus Abfrage:

SELECT user, host FROM mysql.user

Suchen Sie nach einer Zeile mit dem angegebenen Benutzernamen und Hostnamen, die angibt, dass der Benutzer existiert.

Passwort Validierung

Wenn der Benutzer vorhanden ist, bestätigen Sie, dass das Passwort korrekt ist, indem Sie es aktualisieren:

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password')

Berechtigungen erteilen

Der Benutzer verfügt möglicherweise nicht über ausreichende Berechtigungen, um auf die Datenbank zuzugreifen. Gewähren Sie die erforderlichen Berechtigungen mit einem Befehl wie:

GRANT SELECT ON database_name.* TO 'username'@'localhost'

Firewall- und Portkonfiguration

Wenn das Problem durch die oben genannten Schritte nicht behoben wird, überprüfen Sie die Firewall-Einstellungen, um sicherzustellen, dass der Datenbank-Port (normalerweise 3306) ist geöffnet. Überprüfen Sie außerdem den Hostnamen des Benutzers in der Konfigurationsdatei app.php. Der Hostname sollte mit der Hostspalte des Benutzers in der Tabelle mysql.user übereinstimmen.

Wildcard-Host

Wenn der Benutzerhost auf % eingestellt ist, entspricht er jedem Host. Dies kann zu Problemen führen, wenn der Hostname in der app.php-Konfiguration nicht mit dem Hostnamen des Benutzers übereinstimmt. Ändern Sie den Host des Benutzers explizit in „localhost“.

Aktualisieren von Berechtigungen

Änderungen an MySQL-Berechtigungstabellen erfordern eine FLUSH PRIVILEGES-Anweisung, die von einem privilegierten Benutzer ausgeführt wird, um wirksam zu werden:

FLUSH PRIVILEGES

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer „Benutzername' @ „localhost'?. 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