Das MySQL-Referenzhandbuch enthält detaillierte Schritte zum Zurücksetzen des Passworts für root, die wie folgt sind:
Die Vorgehensweise unter Windows:
- Melden Sie sich als Administrator bei dem Windows-System an, auf dem MySQL ausgeführt wird.
- Halten Sie den MySQL-Server an, falls er ausgeführt wird. Gehen Sie für einen Server, der als Windows-Dienst ausgeführt wird, zum Dienste-Manager:
Startmenü -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie dann den MySQL-Dienst in der Liste und stoppen Sie ihn.
Wenn Ihr Server nicht als Dienst ausgeführt wird, müssen Sie möglicherweise den Task-Manager verwenden, um das Beenden zu erzwingen.
- Erstellen Sie eine Textdatei und platzieren Sie die folgenden Befehle darin jeweils in einer einzelnen Zeile:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
Save the file with any name. For this example the file will be C:\mysql-init.txt.SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
- Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
- If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.
At the DOS command prompt, execute this command:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Der Inhalt der durch die Option --init-file benannten Datei wird beim Serverstart ausgeführt und ändert das Root-Passwort. Nachdem der Server erfolgreich gestartet wurde, sollten Sie C:\mysql-init.txt.
löschenWenn Sie MySQL mit dem MySQL-Installationsassistenten installiert haben, müssen Sie möglicherweise eine Option --defaults-file angeben:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Die entsprechende --defaults-file-Einstellung finden Sie im Dienste-Manager:
Startmenü -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie den MySQL-Dienst in der Liste, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option Eigenschaften. Das Feld Pfad zur ausführbaren Datei enthält die Einstellung --defaults-file. Stellen Sie sicher, dass Sie das Argument --init-file mit dem vollständigen Systempfad zu der Datei angeben, unabhängig von Ihrem aktuellen Arbeitsverzeichnis
- Halten Sie den MySQL-Server an und starten Sie ihn dann wieder im normalen Modus neu. Wenn der MySQL-Server als Dienst ausgeführt wird, starten Sie ihn über das Windows-Dienstefenster. Wenn Sie den Server manuell starten, verwenden Sie den Befehl, den Sie normalerweise verwenden.
- Verbinden Sie sich mit dem MySQL-Server, indem Sie das neue Passwort verwenden. Denken Sie auch daran, die mysql-init.txt-Datei zu löschen, wenn Sie fertig sind.
Für Unix- und Linux-Umgebungen ist das Verfahren zum Zurücksetzen des Root-Passworts wie folgt:
- Melden Sie sich beim Unix-System entweder als Unix-Root-Benutzer oder als derselbe Benutzer an, unter dem der mysqld-Server läuft.
- Suchen Sie die .pid-Datei, die die Prozess-ID des Servers enthält. Der genaue Speicherort und Name dieser Datei hängen von Ihrer Distribution, Ihrem Hostnamen und Ihrer Konfiguration ab. Häufige Speicherorte sind /var/lib/mysql/, /var/run/mysqld/ und /usr/local/mysql/data/. Im Allgemeinen hat der Dateiname die Erweiterung .pid und beginnt entweder mit mysqld oder dem Hostnamen des Systems.
Stoppen Sie den MySQL-Server, indem Sie einen normalen Kill (nicht kill -9) an den mysqld-Prozess senden, indem Sie den Pfadnamen der .pid-Datei im folgenden Befehl verwenden:
shell> kill `cat /mysql-data-directory/host_name.pid`
Beachten Sie die Verwendung von Backticks anstelle von Anführungszeichen mit dem cat-Befehl; diese bewirken, dass die Ausgabe von cat in den kill-Befehl eingesetzt wird.
- Erstellen Sie eine Textdatei und platzieren Sie den folgenden Befehl darin in einer einzigen Zeile:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Speichern Sie die Datei unter einem beliebigen Namen. In diesem Beispiel lautet die Datei ~/mysql-init.
- Starten Sie den MySQL-Server mit der speziellen Option --init-file=~/mysql-init neu:
shell> mysqld_safe --init-file=~/mysql-init &
Der Inhalt der Init-Datei wird beim Serverstart ausgeführt und ändert das Root-Passwort. Nachdem der Server erfolgreich gestartet wurde, sollten Sie ~/mysql-init.
löschen - Starten Sie den Server normal neu. Verbinden Sie sich mit dem neuen Passwort mit dem MySQL-Server.
Alternativ kann auf jeder Plattform der mysql-Client verwendet werden, um das neue Passwort festzulegen, obwohl es weniger sicher ist, das Passwort zurückzusetzen (detaillierte Anleitung hier):
- Halten Sie mysqld an und starten Sie es mit den Optionen --skip-grant-tables --user=root neu (Windows-Benutzer lassen den Teil --user=root weg).
- Stellen Sie mit diesem Befehl eine Verbindung zum mysqld-Server her:
shell> mysql -u root
- Geben Sie die folgenden Anweisungen im MySQL-Client aus:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
Ersetzen Sie 'newpwd' durch das eigentliche Root-Passwort, das Sie verwenden möchten.
- Sie sollten sich mit dem neuen Passwort verbinden können.