Wenn Sie niemals ein root
-Passwort für MySQL
gesetzt haben, verlangt der Server überhaupt kein Passwort für
eine root
-Verbindung. Allerdings empfehlen
wir Ihnen dringend, für jedes Konto ein Passwort einzurichten.
Siehe Abschnitt 5.7.1, „Allgemeine Sicherheitsrichtlinien“.
Wenn Sie ein root
-Passwort eingerichtet
hatten, aber sich nicht mehr daran erinnern können, müssen Sie
es neu einstellen. Die nachfolgende Anleitung ist auf Windows
zugeschnitten; eine entsprechende Anleitung für Unix-Systeme
finden Sie weiter unten in diesem Abschnitt.
Vorgehen unter Windows:
Sie melden sich als Administrator an.
Sie halten den MySQL Server an, falls er läuft. Läuft er als Windows-Dienst, müssen Sie dazu den Dienstmanager verwenden:
Start -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie in der Dienstliste den MySQL-Dienst und halten Sie ihn an.
Wenn Ihr Server nicht als Dienst läuft, müssen Sie eventuell den Task-Manager einschalten, um ihn mit Gewalt zu stoppen.
Legen Sie eine Textdatei an und schreiben Sie folgenden Befehl auf einer einzigen Zeile hinein:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Speichern Sie die Datei unter einem beliebigen Namen. In
diesem Beispiel nennen wir sie
C:\mysql-init.txt
.
Öffnen Sie ein Konsolenfenster mit der DOS-Eingabeaufforderung:
Start -> Ausführen -> cmd
Wir gehen davon aus, dass Sie MySQL in
C:\mysql
installiert haben. Wenn nicht,
müssen Sie die folgenden Befehle entsprechend abändern.
Führen Sie an der Eingabeaufforderung folgenden Befehl aus:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Der Inhalt der in der Option --init-file
angegebenen Datei wird beim Serverstart ausgeführt, sodass
das root
-Wort geändert wird. Nachdem der
Server hochgefahren ist, sollten Sie
C:\mysql-init.txt
löschen.
Wenn Sie MySQL mit dem MySQL Installation Wizard
installieren, müssen Sie unter Umständen die Option
--defaults-file
angeben:
C:\>"C:\Programme\MySQL\MySQL Server 5.1\bin\mysqld-nt.exe"
--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"
--init-file=C:\mysql-init.txt
Die passende Einstellung für
--defaults-file
finden Sie mithilfe des
Dienstmanagers:
Start -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie den MySQL-Dienst, klicken Sie ihn mit rechts an
und wählen Sie Eigenschaften
. Das Feld
Pfad zur EXE-Datei
enthält die
Einstellung für --defaults-file
.
Halten Sie den MySQL Server an und starten Sie ihn dann im Normalmodus neu. Wenn Sie den Server als Dienst betreiben, starten Sie ihn im Dienste-Fenster von Windows; wenn Sie ihn manuell betreiben, starten Sie ihn mit dem Befehl, den Sie auch sonst immer benutzen.
Nun müssten Sie mit dem neuen Passwort eine Verbindung bekommen können.
In einer Unix-Umgebung stellen Sie das
root
-Passwort folgendermaßen um:
Sie melden sich als Unix- root
-User oder
als der Benutzer, unter dem der
mysqld-Server läuft, an.
Sie suchen die .pid
-Datei, welche die
Prozess-ID des Servers enthält. Wo sie liegt und wie sie
heißt, hängt von Ihrer Distribution, Ihrem Hostnamen und
Ihrer Konfiguration ab. Gebräuchliche Speicherorte sind zum
Beispiel /var/lib/mysql/
,
/var/run/mysqld/
und
/usr/local/mysql/data/
. Im Allgemeinen
hat der Dateiname die Erweiterung .pid
und fängt entweder mit mysqld
oder dem
Hostnamen Ihres Systems an.
Sie können den MySQL Server anhalten, indem Sie einen
normalen kill
-Befehl (nicht kill
-9
) an den mysqld-Prozess
übermitteln und dabei den Pfadnamen der
.pid
-Datei angeben:
shell> kill `cat /mysql-data-directory/host_name.pid`
Beachten Sie, dass wir Backticks anstelle von
Anführungszeichen für den cat
-Befehl
benutzen. Sie sorgen dafür, dass die Ausgabe von
cat
in den kill
-Befehl
eingesetzt wird.
Legen Sie eine Textdatei an und schreiben Sie folgenden Befehl auf einer einzigen Zeile hinein:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Speichern Sie die Datei unter einem beliebigen Namen. In
diesem Beispiel heißt sie
~/mysql-init
.
Starten Sie den MySQL Server mit der Spezialoption
--init-file=~/mysql-init
:
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
hochgefahren ist, sollten Sie
~/mysql-init
löschen.
Nun müsste das neue Passwort funktionieren.
Alternativ können Sie das neue Passwort auf jeder Plattform auch mit dem Client mysql einstellen (aber diese Methode ist nicht so sicher):
Halten Sie mysqld an und starten Sie ihn
erneut mit den Optionen --skip-grant-tables
--user=root
(Windows-Nutzer lassen
--user=root
weg).
Verbinden Sie sich mit folgendem Befehl mit dem mysqld-Server:
shell> mysql -u root
Geben Sie im mysql-Client folgende Anweisungen:
mysql>UPDATE mysql.user SET Password=PASSWORD('
->newpwd
')WHERE User='root';
mysql>FLUSH PRIVILEGES;
Ersetzen Sie
„newpwd
“ durch das
root
-Passwort, das Sie in Wirklichkeit
benutzen möchten.
Das neue Passwort sollte nun funktionieren.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.