Untersuchung des Fehlers „SQLSTATE[HY000] [1045] Zugriff verweigert“
Ursache:
Der Fehler „Zugriff verweigert“ tritt auf wenn die bereitgestellten Anmeldeinformationen für die Datenbankverbindung falsch oder unzureichend sind. Im gegebenen Fall weist die Fehlermeldung darauf hin, dass dem Benutzer „test2“ mit Host „localhost“ der Zugriff verweigert wurde.
Lösung:
-
Benutzerexistenz überprüfen: Führen Sie die folgende Abfrage aus, um zu bestätigen, ob der Benutzer „test2“ für den angegebenen Host existiert 'localhost':
SELECT user, host FROM mysql.user
Nach dem Login kopieren
-
Überprüfen Sie den passenden Host: Stellen Sie sicher, dass der in der CakePHP-Konfiguration angegebene Host mit dem Host übereinstimmt, der dem MySQL-Benutzer zugeordnet ist. Wenn der Host auf „%“ eingestellt ist, ändern Sie ihn in „localhost“.
-
Passwort bei Bedarf zurücksetzen: Wenn der Benutzer vorhanden ist, setzen Sie das Passwort mit dem folgenden Befehl zurück:
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
Nach dem Login kopieren
-
Datenbankberechtigungen gewähren: Gewähren Sie dem Benutzer die erforderlichen Berechtigungen für die Jobs Datenbank:
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
Nach dem Login kopieren
-
Flush-Berechtigungen:Zwingen Sie MySQL, die Berechtigungstabellen erneut zu lesen:
FLUSH PRIVILEGES
Nach dem Login kopieren
Zusätzliche Überlegungen:
- Stellen Sie sicher, dass der MySQL-Server über die richtige Firewall verfügt Regeln vorhanden.
- Wenn Sie auf WAMP laufen, prüfen Sie, ob der WAMP-Server so konfiguriert ist, dass er Port 3306 überwacht.
- Stellen Sie sicher, dass Sie die richtige MySQL-Version verwenden, die von CakePHP unterstützt wird.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „SQLSTATE[HY000] [1045] Zugriff verweigert' in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!