Server:MySQL-root-Passwort vergessen und neu setzen/zurücksetzen: Unterschied zwischen den Versionen

Aus manitu Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
 
= Anleitung =
 
= Anleitung =
  
Als ersten Schritt stoppen Sie den MySQL-Server:
+
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>
  
Als zweiten Schritt starten Sie den MySQL-Dienst manuell mit zwei Zusatzoptionen, die zum einen Netzwerk-Verbindungen nach außen deaktivieren (aus Sicherheitsgründen) und zum zweiten die Benutzer-/Rechtekontrolle von MySQL deaktiviert:
+
== 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>
 
<pre>$ mysqld_safe --skip-networking --skip-grant-tables</pre>
  
Öffnen Sie als dritten Schritt nun eine '''weitere Shell''' auf den MySQL-Server und führen Sie die Befehle
+
Sollte <code>mysqld_safe</code> auf Ihrem System nicht vorhanden sein, versuchen Sie bitte alternativ einfach nur <code>mysqld</code>.
 +
 
 +
== 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 als vierten Schritt zur ersten (und nun einzigen) Shell und unterbrechen Sie die Ausführung des manuell gestarteten MySQL-Prozesses via
+
== 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
 
<pre>[strg] + [c]</pre>
 
<pre>[strg] + [c]</pre>
  
'''Wichtig:''' Starten Sie als fünften und letzten Schritt den MySQL-Server wieder in den Normalbetrieb:
+
== 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)]]

Aktuelle Version vom 7. April 2012, 14:57 Uhr

Diese Anleitung zeigt Ihnen, wie Sie ein vergessenes MySQL-root-Passwort neu setzen können.

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

Links