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 1698
für einMySQL-ServerInstallation:
Schritt 1.Melden Sie sich als Root bei MySQL an (mitsudo
umgeht die Passwort-Eingabeaufforderung von MySQL):
$ sudo mysql -u root
Schritt 2.Wechseln Sie zummysql
Datenbank und setzen Sie das Plugin aufmysql_native_password
fü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 1698
fü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_socket
Authentifizierung:
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.