Server:MySQL-root-Passwort vergessen und neu setzen/zurücksetzen: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
* dass der MySQL-Server installiert ist und prinzipiell läuft | * dass der MySQL-Server installiert ist und prinzipiell läuft | ||
* dass Sie die Möglichkeit haben, den MySQL-Dienst für kurze Zeit zu stoppen (dies ist zwingend nötig) | * dass Sie die Möglichkeit haben, den MySQL-Dienst für kurze Zeit zu stoppen (dies ist zwingend nötig) | ||
− | * dass Sie auf dem MySQL-Server als ''root'' eingeloggt sind (alternativ führen Sie die Befehle via sudo als Benutzer ''root'' aus) | + | * dass Sie auf dem MySQL-Server als ''root'' eingeloggt sind (alternativ führen Sie die genannten Befehle via sudo als Benutzer ''root'' aus) |
= Anleitung = | = Anleitung = | ||
− | + | Diese Anleitung beschreibt einen Weg über 2 Shells. Es gibt weitere Methoden über eine einzige Shell und mit Hilfe einer initialen SQL-Datei, die dem MySQL-Dienst mitgegeben wird. Diese sind im Ergebnis gleichwertig, teilweise nur komplizierter. | |
+ | |||
+ | == Schritt 1: Stoppen des MySQL-Dienstes == | ||
+ | |||
+ | Stoppen Sie den MySQL-Dienstes : | ||
<pre>$ /etc/init.d/mysql stop</pre> | <pre>$ /etc/init.d/mysql stop</pre> | ||
− | + | == Schritt 2: Starten eines temporären MySQL-Dienstes ohne Benutzer-/Rechtekontrolle == | |
+ | |||
+ | Starten Sie den MySQL-Dienst manuell mit zwei Zusatzoptionen, die aus Sicherheitsgründen alle Netzwerk-Verbindungen deaktivieren (<code>--skip-networking</code>) und die Benutzer-/Rechtekontrolle von MySQL deaktiviert (<code>--skip-grant-tables</code>): | ||
+ | |||
+ | <pre>$ mysqld_safe --skip-networking --skip-grant-tables</pre> | ||
− | < | + | Sollte <code>mysqld_safe</code> auf Ihrem System nicht vorhanden sein, versuchen Sie bitte alternativ einfach nur <code>mysqld</code>. |
− | Öffnen Sie | + | == Schritt 3: Setzen des neuen Passworts == |
+ | |||
+ | Öffnen Sie eine '''weitere Shell''' auf den MySQL-Server und führen Sie die Befehle | ||
<pre>$ mysqladmin -u root password "[NEUES_PASSWORT]" | <pre>$ mysqladmin -u root password "[NEUES_PASSWORT]" | ||
Zeile 25: | Zeile 35: | ||
aus, ersetzen Sie dabei <code>[NEUES_PASSWORT]</code> durch Ihr neues Passwort. Die Anführungszeichen sollten Sie nicht entfernen, damit auch Passworte mit Sonderzeichen, die in der Shell besondere Bedeutungen haben (z.B. <code>$</code> oder <code>?</code>), korrekt behandelt werden. | aus, ersetzen Sie dabei <code>[NEUES_PASSWORT]</code> durch Ihr neues Passwort. Die Anführungszeichen sollten Sie nicht entfernen, damit auch Passworte mit Sonderzeichen, die in der Shell besondere Bedeutungen haben (z.B. <code>$</code> oder <code>?</code>), korrekt behandelt werden. | ||
+ | |||
+ | Wenn Sie möchten, löschen Sie nun die Bash-Historie via | ||
+ | |||
+ | <pre>$ unset HISTFILE</pre> | ||
+ | |||
+ | damit das neue Passwort nicht in der Historie auftaucht. | ||
Schließen Sie diese zweite Shell wieder. | Schließen Sie diese zweite Shell wieder. | ||
− | Wechseln Sie | + | == Schritt 4: Stoppen des temporären MySQL-Dienstes == |
− | <pre> | + | |
+ | Wechseln Sie zur ersten (und nun einzigen) Shell und unterbrechen Sie die Ausführung des manuell gestarteten MySQL-Prozesses via | ||
+ | <pre>[strg] + [c]</pre> | ||
+ | |||
+ | == Schritt 5: Starten des regulären MySQL-Dienstes == | ||
− | + | Starten Sie nun wieder den regulären MySQL-Dienst: | |
<pre>$ /etc/init.d/mysql start</pre> | <pre>$ /etc/init.d/mysql start</pre> | ||
+ | |||
+ | = Links = | ||
+ | |||
+ | * [http://dev.mysql.com/doc/refman/5.1/de/resetting-permissions.html Anleitung auf mysql.com zum Zurücksetzen eines root-Kennworts] | ||
[[Kategorie:Root-Server]][[Kategorie:MySQL (Server)]][[Kategorie:Linux (Server)]] | [[Kategorie:Root-Server]][[Kategorie:MySQL (Server)]][[Kategorie:Linux (Server)]] |
Version vom 7. April 2012, 14:57 Uhr
Diese Anleitung zeigt Ihnen, wie Sie ein vergessenes MySQL-root-Passwort neu setzen können.
Inhaltsverzeichnis
Hinweise
Diese Anleitung geht davon aus,
- dass der MySQL-Server installiert ist und prinzipiell läuft
- dass Sie die Möglichkeit haben, den MySQL-Dienst für kurze Zeit zu stoppen (dies ist zwingend nötig)
- dass Sie auf dem MySQL-Server als root eingeloggt sind (alternativ führen Sie die genannten Befehle via sudo als Benutzer root aus)
Anleitung
Diese Anleitung beschreibt einen Weg über 2 Shells. Es gibt weitere Methoden über eine einzige Shell und mit Hilfe einer initialen SQL-Datei, die dem MySQL-Dienst mitgegeben wird. Diese sind im Ergebnis gleichwertig, teilweise nur komplizierter.
Schritt 1: Stoppen des MySQL-Dienstes
Stoppen Sie den MySQL-Dienstes :
$ /etc/init.d/mysql stop
Schritt 2: Starten eines temporären MySQL-Dienstes ohne Benutzer-/Rechtekontrolle
Starten Sie den MySQL-Dienst manuell mit zwei Zusatzoptionen, die aus Sicherheitsgründen alle Netzwerk-Verbindungen deaktivieren (--skip-networking
) und die Benutzer-/Rechtekontrolle von MySQL deaktiviert (--skip-grant-tables
):
$ mysqld_safe --skip-networking --skip-grant-tables
Sollte mysqld_safe
auf Ihrem System nicht vorhanden sein, versuchen Sie bitte alternativ einfach nur mysqld
.
Schritt 3: Setzen des neuen Passworts
Öffnen Sie eine weitere Shell auf den MySQL-Server und führen Sie die Befehle
$ mysqladmin -u root password "[NEUES_PASSWORT]" $ sync
aus, ersetzen Sie dabei [NEUES_PASSWORT]
durch Ihr neues Passwort. Die Anführungszeichen sollten Sie nicht entfernen, damit auch Passworte mit Sonderzeichen, die in der Shell besondere Bedeutungen haben (z.B. $
oder ?
), korrekt behandelt werden.
Wenn Sie möchten, löschen Sie nun die Bash-Historie via
$ unset HISTFILE
damit das neue Passwort nicht in der Historie auftaucht.
Schließen Sie diese zweite Shell wieder.
Schritt 4: Stoppen des temporären MySQL-Dienstes
Wechseln Sie zur ersten (und nun einzigen) Shell und unterbrechen Sie die Ausführung des manuell gestarteten MySQL-Prozesses via
[strg] + [c]
Schritt 5: Starten des regulären MySQL-Dienstes
Starten Sie nun wieder den regulären MySQL-Dienst:
$ /etc/init.d/mysql start