Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich die Fehlermeldung „Zugriff verweigert', wenn ich in CakePHP eine Verbindung zu MySQL herstelle?

Warum erhalte ich die Fehlermeldung „Zugriff verweigert', wenn ich in CakePHP eine Verbindung zu MySQL herstelle?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 07:05:29268Durchsuche

Why am I getting an

Fehler „Zugriff verweigert“ beim Herstellen einer Verbindung zu MySQL in CakePHP

Problem:

Entwickler, die CakePHP verwenden Beim Versuch, eine Verbindung zu einer MySQL-Datenbank herzustellen, kann der folgende Fehler auftreten:

SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

Lösung:

Dieser Fehler weist normalerweise auf Folgendes hin:

  • Das Passwort ist falsch.
  • Der angegebene MySQL-Benutzer existiert nicht für den angegebenen Host.

Schritte zur Fehlerbehebung:

  1. Benutzerexistenz überprüfen:

    Führen Sie die folgende Abfrage von einem MySQL-Client aus aus, auf dem Sie über ausreichende Berechtigungen verfügen:

    SELECT user, host FROM mysql.user WHERE user = 'username' AND host = 'localhost';

    Wenn keine Zeile zurückgegeben wird, Der Benutzer ist auf dem angegebenen Host nicht vorhanden.

    Wenn die Zeile vorhanden ist, fahren Sie mit Schritt 3 fort.

  2. Erstellen Sie den MySQL-Benutzer:

    Wenn der Benutzer nicht existiert, erstellen Sie ihn mit dem folgenden Befehl:

    CREATE USER username@localhost IDENTIFIED BY 'password';
  3. Passwort zurücksetzen:

    Wenn Der Benutzer existiert, aber das Passwort ist falsch. Setzen Sie ihn mit dem folgenden Befehl zurück:

    SET PASSWORD FOR username@localhost = PASSWORD('new_password');
  4. Berechtigungen erteilen:

    Stellen Sie sicher, dass der Benutzer verfügt über die erforderlichen Berechtigungen für die Datenbankobjekte:

    GRANT <permissions> ON <database_name>.* TO username@localhost;

    Ersetzen Sie mit den gewünschten Berechtigungen (z. B. SELECT, INSERT).

  5. Flush-Berechtigungen:

    Führen Sie den folgenden Befehl aus, um MySQL zum erneuten Lesen zu zwingen die Berechtigungstabellen:

    FLUSH PRIVILEGES;

Zusätzliche Überlegungen:

  • Der Host des Benutzers kann auf einen Platzhalterwert (%) festgelegt werden um mit jedem Host übereinzustimmen, der nicht explizit übereinstimmt.
  • Die Fehlermeldung kann auch auf eine Nichtübereinstimmung zwischen dem in den CakePHP-Verbindungseinstellungen angegebenen Host und dem für den MySQL-Benutzer konfigurierten Host hinweisen.
  • Konsultieren Sie die Weitere Informationen zur Benutzerverwaltung und Berechtigungen finden Sie in der MySQL-Dokumentation.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Zugriff verweigert', wenn ich in CakePHP eine Verbindung zu MySQL herstelle?. 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