Server:MySQL-root-Passwort vergessen und neu setzen/zurücksetzen

Aus manitu Wiki
Wechseln zu: Navigation, Suche

Diese Anleitung zeigt Ihnen, wie Sie ein vergessenes MySQL-root-Passwort neu setzen können.

Hinweise

Diese Anleitung geht davon aus,

  • dass der MySQL-Server installiert ist und prinzipiell läuft
  • dass Sie die Möglichkeit haben, den MySQL-Dienst für kurze Zeit zu stoppen (dies ist zwingend nötig)
  • dass Sie auf dem MySQL-Server als root eingeloggt sind (alternativ führen Sie die genannten Befehle via sudo als Benutzer root aus)

Anleitung

Diese Anleitung beschreibt einen Weg über 2 Shells. Es gibt weitere Methoden über eine einzige Shell und mit Hilfe einer initialen SQL-Datei, die dem MySQL-Dienst mitgegeben wird. Diese sind im Ergebnis gleichwertig, teilweise nur komplizierter.

Schritt 1: Stoppen des MySQL-Dienstes

Stoppen Sie den MySQL-Dienstes :

$ /etc/init.d/mysql stop

Schritt 2: Starten eines temporären MySQL-Dienstes ohne Benutzer-/Rechtekontrolle

Starten Sie den MySQL-Dienst manuell mit zwei Zusatzoptionen, die aus Sicherheitsgründen alle Netzwerk-Verbindungen deaktivieren (--skip-networking) und die Benutzer-/Rechtekontrolle von MySQL deaktiviert (--skip-grant-tables):

$ mysqld_safe --skip-networking --skip-grant-tables

Sollte mysqld_safe auf Ihrem System nicht vorhanden sein, versuchen Sie bitte alternativ einfach nur mysqld.

Schritt 3: Setzen des neuen Passworts

Öffnen Sie eine weitere Shell auf den MySQL-Server und führen Sie die Befehle

$ mysqladmin -u root password "[NEUES_PASSWORT]"
$ sync

aus, ersetzen Sie dabei [NEUES_PASSWORT] durch Ihr neues Passwort. Die Anführungszeichen sollten Sie nicht entfernen, damit auch Passworte mit Sonderzeichen, die in der Shell besondere Bedeutungen haben (z.B. $ oder ?), korrekt behandelt werden.

Wenn Sie möchten, löschen Sie nun die Bash-Historie via

$ unset HISTFILE

damit das neue Passwort nicht in der Historie auftaucht.

Schließen Sie diese zweite Shell wieder.

Schritt 4: Stoppen des temporären MySQL-Dienstes

Wechseln Sie zur ersten (und nun einzigen) Shell und unterbrechen Sie die Ausführung des manuell gestarteten MySQL-Prozesses via

[strg] + [c]

Schritt 5: Starten des regulären MySQL-Dienstes

Starten Sie nun wieder den regulären MySQL-Dienst:

$ /etc/init.d/mysql start

Links