[[:tux|{{ :linux.png?40|}}]]
===== 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:
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:
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:**
[[:tux:set_mysql_passwd|-> MySQL User Passwort ändern]]
\\
--- //pronto 2011/04/05 17:02//
{{keywords>mysqld mysql passwort root reset zurücksetzen}}