MySQL Root Passwort zurücksetzen

Passwort des MySQL root User ändern

Um das Passwort des MySQL root User zu ändern gehen Sie bitte wie folgt vor:

Melden Sie sich an der MySQL Datenbank mit dem User »root« an:

# mysql -p

Laden Sie die Datenbank »mysql«. In dieser werden die Passwörter verwaltet:

mysql> use mysql

Setzen Sie folgendes Kommando ab, um das Passwort des MySQL root Users neu zu setzen. Tauschen Sie den String »MyNewPass« gegen das neue Passwort aus:

mysql> UPDATE user SET Password=PASSWORD('MyNewPass') WHERE user='root';

Führen Sie abschließend ein »flush privileges« aus und melden Sie sich an der Datenbank mit einem »quit« wieder ab:

mysql> flush privileges;
mysql> quit


Sie haben das MySQL root Passwort verloren?

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 Anschluss 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

Setzen Sie im Anschluss daran das og SQL Statement ab. An Stelle von »MyNewPass« setzen Sie Ihr neues MySQL root-Passwort ein:

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.txt (9809 views) · Zuletzt geändert: 2011/05/23 10:49 von wikisysop
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