[Gelöst] FEHLER 1698 (28000) Zugriff für Benutzer „root“@„localhost“ verweigert

Erhalten Sie die folgende Fehlermeldung, wenn Sie versuchen, sich auf einem Ubuntu-System oder einem anderen System beim MySQL-Root anzumelden?? Wir zeigen Ihnen, wie Sie das Problem in Sekundenschnelle beseitigen.

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Erläuterung:Dieser Fehler wird verursacht durchauth_socket-Plugin. Die einfachste Lösung besteht darin, einfach das Plugin zu deaktivieren. Wie das geht, zeigen wir Ihnen weiter unten.

Befolgen Sie den entsprechenden Abschnitt unten, je nachdem, ob Sie MySQL Server oder MariaDB Server ausführen, da beide Implementierungen eine unterschiedliche Lösung zur Behebung des Root-Anmeldeproblems erfordern.

MySQL-Server

In diesem Abschnitt werden wir das Problem behebenERROR 1698für einMySQL-ServerInstallation:

Schritt 1.Melden Sie sich als Root bei MySQL an (mitsudoumgeht die Passwort-Eingabeaufforderung von MySQL):

$ sudo mysql -u root

Schritt 2.Wechseln Sie zummysqlDatenbank und setzen Sie das Plugin aufmysql_native_passwordfür den Root-Benutzer:

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;

Schritt 3.Damit dies funktioniert, müssen Sie das Root-Passwort ändern. Auch die Angabe des aktuellen Passworts ist in Ordnung, allerdings muss dieser Befehl ausgeführt werden:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password_here';
mysql> exit;

Schritt 4.Starten Sie abschließend MySQL neu, damit die Änderungen wirksam werden:

$ sudo systemctl restart mysql

Schritt 5.Sie können sich jetzt wie gewohnt bei MySQL Root anmelden und der Fehler tritt nicht mehr auf:

$ mysql -u root -p

MariaDB-Server

In diesem Abschnitt werden wir das Problem behebenERROR 1698für einMariaDB-ServerInstallation:

Schritt 1.Die Lösung für MariaDB ist anders. Benutzer müssen die Ersteinrichtung durchführen, indem sie Folgendes ausführen:

$ sudo mysql_secure_installation

Schritt 2.Drücken Sie die Eingabetaste, wenn Sie zur Eingabe des Root-Passworts aufgefordert werden:

Enter current password for root (enter for none):

Schritt 3.AntwortNwenn Sie zum Aktivieren aufgefordert werdenunix_socketAuthentifizierung:

Switch to unix_socket authentication [Y/n] n

Schritt 4.AntwortYWenn Sie gefragt werden, ob Sie das Root-Passwort ändern möchten, geben Sie ein neues Passwort ein:

Change the root password? [Y/n] y
New password: 
Re-enter new password:

Schritt 5.Gehen Sie die nächsten paar Fragen durch und schließen Sie sie schließlich mit der Beantwortung abYSo laden Sie die Tabellenrechte neu:

Reload privilege tables now? [Y/n] y

Schritt 6.Sie können sich jetzt wie gewohnt bei MariaDB root anmelden und der Fehler tritt nicht mehr auf:

$ mysql -u root -p

Hat das bei Ihnen funktioniert? Lass es uns unten in den Kommentaren wissen! Geben Sie Ihre Systeminformationen an, um Hilfe bei der Fehlerbehebung zu erhalten.