mySQL: Vergessenes (root) Passwort zurücksetzen

11.07.2010 at 21:38

Wenn Sie Ihr mySQL Masterpasswort (das “root-Passwort”) vergessen haben, können Sie es neu setzen (resetten). Dafür stellen wir Ihnen drei Alternativen zur Verfügung.

Diese Technik können Sie auch nutzen, um Ihr root-Passwort zu ändern. Wir möchten Ihnen für die Änderung des mySQL root Passwortes jedoch einer unserer anderen Anleitungen anbieten. Dafür müssen Sie jedoch das aktuelle root-Passwort noch kennen: mySQL: Root Passwort ändern.

Möglichkeit 1 (unsicherer als Methode 2 & 3)

Sie können das root Passwort auf jeder Plattform (Windows, Linux, …) auch mit der offiziellen Client-Software “mysql” einstellen:

  1. Stoppen Sie “mysqld” (mySQL Service / Dienst) und starten Sie ihn erneut. Dabei geben Sie als Option “–skip-grant-tables –user=root” mit. Als Windowsbenutzer lassen Sie bitte “–user=root” weg
    mysqld --skip-grant-tables --user=root
  2. Nun verbinden Sie sich mit dem mySQL-Server (dem mysqld Service):
    mysql -u root
  3. Geben Sie im mySQL-Client die folgende SQL Anweisungen ein:
    1
    2
    
    UPDATE mysql.USER SET Password=PASSWORD('NeuesPasswort') WHERE USER='root';
    FLUSH PRIVILEGES;

    Ersetzen Sie im vorherigen Befehl bitte den Text “NeuesPasswort” durch Ihr neues root-Passwort. Achten Sie dabei vorerst darauf, dass Sie keine Sonderzeichen, Umlaute und andere besondere Zeichen eingeben. Diese führen später häufig zu Problemen. Testen Sie zuerst das Zurücksetzen des root-Passwortes mit einem einfachen Passwort.

  4. Ihr neues root-Passwort sollte nun funktionieren

Möglichkeit 2 (unter Windows)

  1. Melden Sie sich bitte als Administrator an Ihrem Computer an. Bei neu Windows-Versionen können Sie sich als Benutzer mit Administratorrechten anmelden.
  2. Sollte der mySQL Server laufen, stoppen Sie ihn bitte.
    Wenn er als Windows-Dienst gestartet ist, benutzen Sie bitte den Microsoft Dienstmanager:

    Start > Systemsteuerung (ggf. auf Symbolansicht umstellen) > Verwaltung > Dienste

    In der Liste der Dienste suchen Sie den “MySQL-Dienst”. Klicken Sie den Eintrag einmal an und anschließend auf das Stop-Symbol oberhalb der Liste.
    Sollte der mySQL-Server nicht als Dienst läufen, benötigen Sie ggf. die Hilfe des Task-Managers (Strg+Alt+Entf) um das Programm unsanft zu beenden.

  3. Erstellen Sie nun eine neue Textdatei und tragen Sie folgende Zeile (nur eine !) ein:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NeuesPasswort');

    Speichern Sie diese Datei jetzt unter einem beliebigen Namen. Für dieses Beispiel benutzen wir den Namen “C:\mysql-reset.txt”.

  4. Starten/Öffnen Sie die Kommandozeile:
    Start > Ausführen (oder Windowstaste + R) > cmd
  5. Starten Sie Ihren mySQL-Server neu und geben Sie ihm dabei Ihre gerade erstellte Datei mit an:
    C:\mysql\bin\mysqld-nt --init-file=C:\mysql-reset.txt

    Bei diesem Befehl wird davon aufgegangen, dass der mySQL Server auf Ihrem Computer unter “C:\mysql” installiert ist. Gerade auf neueren Windows-Versionen ist das nicht mehr allzu üblich und daher finden Sie den mySQL Server dort meistens unter “C:\Program Files (x86)\mysql\”. Dann lautet der Befehl:

    "C:\Program Files (x86)\bin\mysqld-nt" --init-file=C:\mysql-reset.txt

    Aufgrund der Leerzeichen im Pfad des Programmes muss der erste Befehlsteil in Anführungszeichen gesetzt werden!

    Nutzen Sie den mySQL Server als Dienst, starten Sie bitte jetzt den Dienst wieder.

  6. Ihr neues root-Passwort sollte nun funktionieren. Vergessen Sie bitte nicht, die Datei “C:\mysql-reset.txt” zu löschen.

Möglichkeit 3 (unter Linux)

  1. Sie melden sich als root-Benutzer bzw. als derjenige Benutzer, unter dem der mysqld-Server läuft, auf Ihrem Linux (Unix) Computer an.
  2. Suchen Sie nun die .pid-Datei, welche die aktuelle Prozess-ID des mySQL-Servers enthält.
    Der genaue Pfad und der Name sint sehr stark von Ihrer Linux-Distribution, Ihrem Hostnamen und der Konfiguration Ihres System ab. Häufig liegen diese .pid-Dateien unter
    /var/lib/mysql/
    /var/run/mysqld/
    /usr/local/mysql/data/
    Meist hat die Datei den Suffix (die Erweiterung) “.pid” und fängt mit “mysqld” oder Ihrem Hostnamen des Computers an.
    Alternativ können Sie auch folgenden Befehl eingeben und in der dann ausgegebenen Liste die Datei suchen:

    find / -name *mysql*.pid
  3. Beenden Sie den mySQL Server durch einen normalen “kill”-Befehl (nicht “kill -9″).
    Übergeben Sie dabei den vollständigen Dateinamen der .pid-Datei:

    kill `cat /pfad/zur/datei.pid`

    Achten Sie bei der Eingabe bitte auf die sog. “Backticks” (Shift + `) anstelle der gewohnten Anführungszeichen um den “cat”-Befehl. Diese Zeichen sorgen dafür, dass die Ausgabe des Unterbefehles “cat /pfad/zur/datei.pid” automatisch in den “kill”-Befehl eingesetzt wird.

  4. Nun legen Sie eine neue Textdatei an. Schreiben Sie folgenden Befehl in einer einzigen Zeile hinein:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NeuesPasswort');

    Speichern Sie diese neue Datei ab und merken Sie sich den Dateinamen. Für dieses Beispiel haben wir die Datei “~/mysql-reset” genannt. Durch die Tilde (~) wird diese Datei in Ihrem Home-Verzeichnis abgelegt.

  5. Jetzt starten Sie Ihren mySQL Server mit der Option “–init-file=~/mysql-reset” neu:
    mysqld_safe --init-file=~/mysql-reset

    Durch diesen Befehl wird der Inhalt der gerade erstellten Datei beim Start des mySQL Servers ausgeführt und ändert automatisch das Root-Passwort.
    Nachdem der Server hochgefahren ist, sollten Sie die Datei “~/mysql-reset” löschen.

  6. Ihr neues root-Passwort sollte nun funktionieren