FEHLER 1698 (28000): Zugriff für Benutzer 'root' @ 'localhost' unter Ubuntu 18.04 verweigert

22

Ich habe dieses Tutorial befolgt , um MySQL zu installieren, aber nach der erfolgreichen Installation von MySQL konnte ich nicht auf die Datenbank zugreifen.

FEHLER 1698 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert

Ashrafuzzaman Sujan
quelle
1
Ich sah mich nach einigem Graben dem gleichen Problem gegenüber, bei dem du das root-Passwort selbst festlegen musst, indem du den Anweisungen im StackOverFlow folgst .
Mohammad.H Fathi

Antworten:

45

Unter diesem Link habe ich eine Lösung gefunden. Mit dieser Lösung habe ich mein Problem gelöst.

Kurze Schritte sind:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Hinweis: Hier testist ein neues Passwort für den Root-Benutzer. Denken Sie auch daran, den Befehl auszuführen, sudo service mysql restartnachdem Sie den Benutzer geändert haben.

Ashrafuzzaman Sujan
quelle
Vielen Dank. Es ist seltsam, dass mysql-server nicht mehr zur Eingabe eines Passworts auffordert.
Gamofe
1
FEHLER 1064 (42000): Ihre SQL-Syntax ist fehlerhaft. Sie in der Bedienungsanleitung entspricht Ihrer MariaDB Server - Version für den richtigen Syntax in der Nähe von ‚USER‚root‘@‘ ist localhost ‚GEKENNZEICHNET MIT mysql_native_password BY‚b230mehonot‘‘ at line 1
alhelal
gleichen Fehler hier ... :(
user1111929
@alhelal, Die Lösung ist für MySQL, nicht für MariaDB. Sie können also eine andere Lösung ausprobieren.
Ashrafuzzaman Sujan
Schreiben Sie nicht mysql -u root, schreiben Sie einfach "sudo mysql". In Ubuntu-Systemen, auf denen MySQL 5.7 (und höher) ausgeführt wird, wird der Root-Benutzer standardmäßig vom Plugin auth_socket authentifiziert.
Ravisoni
13

Ich habe einen anderen Weg gefunden, der viel besser ist, da wir für das lokale System kein Kennwort angeben müssen.
Es ist wie folgt.

Terminal öffnen und eingeben

sudo mysql -u root -p

Es wird Sie in MySQL auffordern, hier können Sie alle MySQL-Befehle auslösen.

Verwenden Sie mysql table für die Änderung des Tabellentyps, damit wir ein leeres Passwort verwenden können. Gebrüll ist Befehl dafür

USE mysql;

Jetzt ändern wir den Tabellentyp mit folgendem Befehl

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

Jetzt müssen wir die Privilegien leeren, weil wir UPDATE verwendet haben. Wenn Sie INSERT, UPDATE oder DELETE direkt für Grant-Tabellen verwenden , müssen Sie FLUSH PRIVILEGES verwenden, um die Grant-Tabellen neu zu laden.

FLUSH PRIVILEGES;

Verlassen Sie jetzt mysql mit folgendem Befehl

exit;

Starten Sie nun den MySQL-Server neu, indem Sie den folgenden Befehl ausführen

service mysql restart

Hoffe das könnte helfen

Vielen Dank.

Krunal Pathak
quelle
2
Dies ist die richtige Antwort
Ningappa
Vielen Dank
Gerne