Solved: Error 1698 (28000) in MySQL/MariaDB

Der Artikel ist über 2 Jahren alt. Einige Inhalte können demnach veraltet sein. Bitte beachte dies beim Lesen des Artikels.
There is an English version of this article available.

Vor einigen Tagen habe ich auf einem Ubuntu Server 16.04 LTS den Datenbankserver MariaDB installiert. Die Installation verlief über

wie üblich, der Installationassistent fragte allerdings nicht mehr wie früher nach dem Root-Passwort. Auch nach der Installation war scheinbar kein Root-Passwort gesetzt – trotzdem wurden Anmeldeversuche mit der Fehlermeldung

abgewiesen.

Die Lösung und der Grund hierfür wurden schon hier beschrieben. Kurz zusammengefasst: die Anmeldung unter dem Benutzer ‘root’@’localhost’ läuft unter Server 16.04 über das Plugin “unix_socket” ab. Wird die Anmeldung unter dem Benutzer root (dem Systembenutzer!) durchgeführt, sollte es keine Probleme geben.

Wird trotzdem für z.B. phpMyAdmin der root-Zugang über ein Passwort benötigt, lässt sich das ganze folgendermaßen deaktivieren:

  1. per sudo mysql -u root -p in MySQL/MariaDB anmelden
  2. mittels use mysql; in die Systemdatenbank wechseln
  3. das Plugin per SQL-Befehl UPDATE user SET plugin='mysql_native_password' WHERE user='root'; deaktivieren (siehe Nachtrag)
  4. mit dem SQL-Befehl UPDATE user SET password=PASSWORD('passwort-hier-einfuegen') WHERE user='root'; ein Passwort setzen
  5. über flush privileges; den Cache löschen

Hiernach sollte die Anmeldung wieder funktionieren.

Nachtrag vom 09.11.2017

Da ich diesen Artikel seit Juli 2016 nicht mehr aktualisiert habe, er aber nach wie vor sehr oft aufgerufen wird, hier ein kleiner Nachtrag: wie Henry Jones mich darauf hingewiesen hat, darf der Inhalt von der Spalte plugin nicht mehr leer sein, wie es früher noch möglich war. Vorher stand im Artikel UPDATE user SET plugin='mysql_native_password' WHERE user='root';, das gilt jetzt nicht mehr.

Gefällt dir der Artikel? Dann empfiehl ihn weiter!
LESETIPP  Erreichbarkeit von Ports mit netcat ermitteln

6 Gedanken zu „Solved: Error 1698 (28000) in MySQL/MariaDB“

  1. Servus,
    vielen Dank für den Beitrag, grundsätzlich gut nur hat er mich sicher ein Stündchen gekostet wg. der einfachen Anführungsstriche bei ‘passwort-hier-einfuegen’. Sind doppelte “passwort-hier-einfuegen”!
    Ansonsten vielen Dank!
    Ciao,
    Hannes

  2. Plugin darf nicht leer sein, sonst ist keine Anmeldung mehr möglich, in der aktuellen MySQL sollte dort dann ‘mysql_native_password’ eingetragen werden, das erspart einem plötzlich nicht mehr in MySQL reinzukommen und es dann ohne Rechte neuzustarten um dem Root-User dann nachträglich dieses Plugin zuzuweisen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.