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.
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.
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')
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'
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.
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“.
Ä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!