Dies ist eine alte Version des Dokuments!


MySQL Root Passwort zurücksetzen

Wenn Sie Ihr Root Passwort für die MySQL Datenbank verloren haben, gibt es mehrere Möglichkeiten dieses wieder zurückzusetzen. Eine Möglichkeit wäre zB ein File mit einem SQL Statement zu erzeugen und dieses »init«-File dem mysql-Daemon während eines sicheren Starts mitzugeben. Eine andere die MySQL Datenbank mit der Option »--skip-grant-tables« zu starten, was in etwa einer Single-User Shell auf einem unixoiden System gleich kommt.

Das init-Skript

Stoppen Sie den MySQL Daemon: Suchen Sie dazu die PID des Prozesses, welcher den Daemon ausführt. MySQL selbst legt eine Datei im Dateisystem mit dem Namen »mysqld.pid« oder »[Hostname].pid« ab. Diese Datei beinhaltet die aktuelle PID des laufenden mysqld-Prozesses:

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

Legen Sie eine Datei mit folgenden SQL-Satements an. Der Name und Speicherort der Datei ist im Prinzip egal, hier im Beispiel wurde die Datei »/root/init-skript.sql« angelegt. Ersetzen Sie auch »MyNewPass« mit dem gewünschten Passwort:

/root/init-skript.sql

UPDATE mysql.USER SET Password=PASSWORD('MyNewPass') WHERE USER='root';
FLUSH PRIVILEGES;
Das die Datei hinterher wieder gelöscht oder zumindest an einem sicheren Ort aufbewahrt werden sollte, versteht sich von selbst.

Starten Sie die MySQL Datenbank mit der »--init-file« Option und übergeben Sie dieser Option das zuvor erstellte Skript:

# mysqld_safe --init-file=/root/init-skript.sql &

Beenden Sie im Anschluß mysqld wieder und starten ihn erneut im ganz normalen Modus. Danach sollten Sie in der Lage sein, sich an Ihrer Datenbank mit dem Benutzer root und dem neu vergebenen Passwort anzumelden.

zB Debian:

# /etc/init.d/mysqld restart


Die --skip-grant-tables Option

Folgendes SQL Statement setzt dem User root ein neues Passwort:

SQL Statement

update user set Password=PASSWORD('MyNewPass') where user='root';

Stoppen Sie den mysql Dienst und starten Sie ihn wieder mit der »--skip-grant-tables« Option:

# /etc/init.d/mysql stop
# mysql --skip-grant-tables -uroot

So haben Sie wieder Zugang zur administrativen Konsole von MySQL und können dort das Passwort des root-Users wieder neu setzen. Laden Sie zuerst die Datenbank »mysql«, hier werden die User verwaltet:

mysql> use mysql
mysql>Database changed
mysql> update user set Password=PASSWORD('MyNewPass') where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

Starten Sie im Anschluss daran die Datenbank wieder ganz normal:

# /etc/init.d/mysql restart



Verwandte Artikel:
-> MySQL User Passwort ändern


pronto 2011/04/05 17:02

tux/reset_mysql_passwd.1302124600.txt.gz (9844 views) · Zuletzt geändert: 2011/04/16 21:42 (Externe Bearbeitung)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0