Begegnungen mit „SQLSTATE[HY000] [1698] Zugriff verweigert für Benutzer „ Der Fehler „root‘@‘localhost‘“ nach dem Einrichten eines Ubuntu-Webservers kann frustrierend sein. Auch wenn der Zugriff auf die Datenbank über das Terminal möglich zu sein scheint, bleiben Fehler in PHP und phpMyAdmin bestehen. Das Verständnis der zugrunde liegenden Ursache ist für die Lösung dieses Problems von entscheidender Bedeutung.
Root-Benutzereinschränkungen
Ab MySQL 5.7 werden Einschränkungen für den Root-Benutzer eingeführt. Ohne erhöhte Rechte ist ein direkter Zugriff auf MySQL mit mysql -u root nicht mehr möglich. Stattdessen ist sudo mysql -u root erforderlich, was zur Eingabe eines Passworts führt.
Diese Einschränkung gilt auch für GUI- und Nicht-Befehlszeilenanwendungen. Um dieses Problem zu beheben, erstellen Sie einen neuen Benutzer mit den erforderlichen Berechtigungen, anstatt den Root-Benutzer zu verwenden.
Implementierung in PHP
Im bereitgestellten PHP-Code sind Anmeldeinformationen enthalten fest codiert. Um Einschränkungen für Root-Benutzer zu umgehen, ändern Sie die Methode __construct(), um einen neuen Benutzer mit den entsprechenden Berechtigungen einzubinden:
<code class="php">public function __construct() { try { $this->conn = new PDO("mysql:host=$this->host;dbname=$this->db", $this->name, $this->pass, self::$settings); } catch (PDOException $e) { echo $e->getMessage(); } }</code>
Ersetzen Sie $this->name und $this->pass durch die Anmeldeinformationen des neu erstellten Benutzers . Stellen Sie sicher, dass der Benutzer über die erforderlichen Berechtigungen für den Zugriff auf die Datenbank verfügt.
Zusätzliche Ressourcen
Weitere Einblicke und Schritte zur Fehlerbehebung finden Sie in der folgenden Ressource:
Das obige ist der detaillierte Inhalt vonWarum kann ich in Ubuntu als Root-Benutzer nicht auf meine MySQL-Datenbank zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!