Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich den MySQL-Fehler 1698 (Zugriff verweigert) und wie kann ich ihn beheben?
Behandlung von Fehler 1698 während der MySQL-Anmeldung
Benutzer stoßen möglicherweise auf FEHLER 1698 (28000): Zugriff für Benutzer „root“@ verweigert 'localhost' beim Versuch, sich mit dem Root-Benutzer bei der MySQL-Datenbank anzumelden. Dieser Fehler tritt häufig auf Systemen wie Ubuntu auf, wo MySQL standardmäßig das Unix-Plugin auth_socket zur Authentifizierung verwendet.
Hintergrund: Das Plugin auth_socket verlässt sich bei der Authentifizierung auf die Anmeldeinformationen des Systembenutzers. Durch Abfragen der mysql.user-Tabelle können Sie überprüfen, ob der Root-Benutzer bei diesem Plugin registriert ist:
SELECT User, Host, plugin FROM mysql.user;
Mögliche Lösungen:
Option 1 : Root-Benutzer für die Verwendung des mysql_native_password-Plugins konfigurieren
Bei dieser Methode wird der Root-Benutzer so eingestellt, dass er das traditionellere verwendet mysql_native_password-Plugin:
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; sudo service mysql restart
Option 2: Erstellen Sie einen neuen Datenbankbenutzer (empfohlen)
Ein alternativer Ansatz besteht darin, einen neuen Datenbankbenutzer mit Ihrem Systembenutzernamen zu erstellen. Dies bietet eine einfacher zu verwaltende und sicherere Option:
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; FLUSH PRIVILEGES; sudo service mysql restart
Beachten Sie, dass Sie bei Option 2 eine Verbindung zu MySQL unter Verwendung Ihres Systembenutzernamens herstellen:
mysql -u YOUR_SYSTEM_USER
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich den MySQL-Fehler 1698 (Zugriff verweigert) und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!