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
Freigeben: 2024-10-27 07:05:29
Original
265 Leute haben es durchsucht

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)
Nach dem Login kopieren

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';
    Nach dem Login kopieren

    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';
    Nach dem Login kopieren
  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');
    Nach dem Login kopieren
  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;
    Nach dem Login kopieren

    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;
    Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage