MySQL Root-Passwort in 3 einfachen Schritten zurücksetzen

MySQL Root-Passwort in 3 einfachen Schritten zurücksetzen

Hast du das Root-Passwort deines MySQL-Servers vergessen? Kein Grund zur Sorge. Hier erfährst du, wie du es schnell und einfach zurücksetzen kannst.

Das Zurücksetzen des Root-Passworts ist ein einfacher Prozess, der in drei einfachen Schritten durchgeführt werden kann. Egal, ob du ein Anfänger oder ein erfahrener MySQL-Benutzer bist, ich zeige dir, wie du die Kontrolle über deinen Datenbankserver wiedererlangen kannst.

In diesem Leitfaden werden zwei verschiedene Techniken zum Zurücksetzen des MySQL Root User Passworts vorgestellt. Für welche der beiden Methoden du dich auch entscheidest, sie wird dir das gewünschte Ergebnis liefern. Außerdem gilt die Anleitung ausschließlich für die Datenbank MariaDB, eine beliebte MySQL-Alternative, und bietet in einigen Fällen zusätzliche Funktionen, die in MySQL nicht verfügbar sind.

MySQL root Passwort zurücksetzen: Der schnellste Weg

Um die folgenden Schritte auszuführen, brauchst du ein lokales Benutzerkonto auf dem Server, auf dem MySQL läuft, das über sudo-Berechtigungen zum Ausführen privilegierter Befehle verfügt.

Schritt 1: Anhalten und Starten des MySQL-Servers ohne Passwort

Stoppe den MySQL-Dienst.

sudo systemctl stop mysqld

Starte dann, wie unten gezeigt, eine temporäre MySQL-Serverinstanz.

sudo -u mysql mysqld --skip-grant-tables &

Lass mich das erklären. Wenn der Server mit der Option --skip-grant-tables gestartet wird, liest er die Grant-Tabellen nicht und wendet keine Zugriffskontrolle an. Mit anderen Worten: Die Benutzer können ohne Passwort auf den Server zugreifen.

Du kannst dich jetzt als Root-Benutzer am MySQL-Server anmelden, ohne dass ein Passwort erforderlich ist.

mysql -u root
Befehlsausgabe der Verwendung von Skip-grant-tables auf einem MySQL-Server im Linux-Terminal

Schritt 2: Zurücksetzen eines MySQL-Root-Passworts

Setze zunächst die aktuellen Berechtigungen zurück.

FLUSH PRIVILEGES;

Setze dann das Root-Passwort von MySQL mit der folgenden Abfrage zurück. Ersetze zuerst natürlich "MyNewPassword" durch das gewünschte Passwort.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword!1';

Zum Schluss lädst du die Berechtigungen noch einmal neu und beendest das Programm.

FLUSH PRIVILEGES;
quit
Befehlsausgabe der Passwortänderung auf einem MySQL-Server im Linux-Terminal

Schritt 3: Neustart und Verbindung mit dem MySQL-Server

Nachdem wir nun das Passwort geändert haben, musst du den vorübergehend laufenden MySQL-Server stoppen, indem du seine Prozessnummer herausfindest und ihn beendest. Das kannst du ganz einfach mit dem folgenden Befehl erreichen:

ps auxw | grep '\-\-skip-grant-tables' | tail -n 1 | awk '{ print $2 }' | sudo xargs kill

Starte dann den MySQL-Server neu und melde dich mit dem neuen Passwort an.

sudo systemctl start mysqld
mysql -u root -p

Herzlichen Glückwunsch! Der MySQL-Server ist jetzt wieder unter deiner Kontrolle.

Befehlsausgabe der Verwendung von Skip-grant-tables auf einem MySQL-Server im Linux-Terminal

Das Root-Passwort von MySQL durch eine Initialisierungsdatei zurücksetzen

Um die folgenden Schritte auszuführen, brauchst du ein lokales Benutzerkonto auf dem Server, auf dem MySQL läuft, das über sudo-Berechtigungen verfügt, um privilegierte Befehle auszuführen.

Schritt 1: Wechsle zum Systembenutzer mysql und halte den MySQL-Server an

Um die folgenden Schritte erfolgreich durchzuführen, musst du zu dem Systembenutzerkonto wechseln, unter dem dein MySQL-Server läuft. Das ist normalerweise das Systemkonto mit dem Benutzernamen mysql. Um dorthin zu wechseln, führe Folgendes aus:

sudo -u mysql /bin/bash

Du kannst den Befehl whoami verwenden, um sicherzustellen, dass du mit dem richtigen Benutzer arbeitest.

Befehlsausgabe der Anmeldung als MySQL Benutzer im Linux-Terminal

Beende dann den MySQL-Server, indem du dem kill-Befehl den vollständigen Pfad zur PID-Datei mit der Prozessnummer übergibst, mit der er gestartet ist. Wenn du dir nicht sicher bist, wo sich diese Datei befindet, kannst du sie schnell finden, indem du den folgenden Befehl ausführst:

mysqld --print-defaults | tr " " "\n" | grep pid | tail -n 1
Befehlsausgabe der Verwendung von MySQL-Server im Linux-Terminal

Zum Schluss beendest du den MySQL-Server.

kill `cat /run/mysqld/mysqld.pid`

Schritt 2: Erstelle eine MySQL-Passwort-Reset-Datei

Erstelle mit deinem bevorzugten Texteditor im Verzeichnis /tmp eine Textdatei mit dem Namen "mysql-init.txt", die eine einzige Zeile mit der Abfrage für die Passwortzuweisung enthält.

vi /tmp/mysql-init.txt

Füge die folgende Zeile ein und achte darauf, das Passwort in das zu ändern, das du verwenden möchtest.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword!1';

Speichere die Datei und beende sie. 

Befehlsausgabe der Passwortänderung auf einem MySQL-Server im Linux-Terminal

Schritt 3: Starten des MySQL-Servers

Starte den MySQL-Server wie unten gezeigt und setze dabei die Option --init-file auf den vollständigen Pfad zu der Datei, die du gerade erstellt hast.

mysqld --init-file=/tmp/mysql-init.txt &

Das war's schon. Das Passwort des MySQL-Root-Benutzers wurde geändert und du kannst dich jetzt als root mit dem Passwort anmelden, das du in der Datei oben angegeben hast.

mysql -u root -p
Befehlsausgabe der Initialisierung auf einem MySQL-Server im Linux-Terminal
bash-4.4$ kill `cat /run/mysqld/mysqld.pid`
exit
sudo systemctl start mysqld

Jetzt kannst du die Datei "/tmp/mysql-init.txt" sicher löschen. Du brauchst sie nicht mehr.

Um den MySQL jedoch wieder über SystemD steuern zu können muss der MySQL-Server über SystemD auch wieder gestartet werden.

Befehlsausgabe der Anmeldung auf einem MySQL-Server im Linux-Terminal

Fazit

Wie du siehst, ist das Zurücksetzen des MySQL-Root-Passworts ein relativ einfacher Prozess, der in drei Schritten durchgeführt werden kann. Es ist jedoch wichtig zu beachten, dass das Zurücksetzen des Root-Passworts nur als letzter Ausweg erfolgen sollte, da es deine Datenbank potenziellen Sicherheitsrisiken aussetzen kann.

Daher ist es immer eine gute Idee, dein Passwort sorgfältig zu verwalten und es sicher aufzubewahren, damit es in Zukunft nicht zurückgesetzt werden muss. Weitere Informationen findest du in der offiziellen Dokumentation.

DER NEWSLETTER FÜR IT-BEGEISTERTE

Trag dich ein für den Newsletter und bleib auf dem Laufenden über alle neuesten Aktionen und IT-News!

Wir senden keinen Spam! Erfahre mehr in unserer Datenschutzerklärung.