Datenbank-Server

ID #1203 MySQL: Root-Passwort vergessen

Problem:

Man hat das MySQL-Root-Passwort vergessen. Vorrausgesetzt es existiert ein root-User für MySQL (siehe Plesk: Admin-Passwort verloren) und es steht nicht in der Datei ~/.my.cnf (wo es eigentlich auch nicht stehen sollte).

1.Lösung (eine Shell):

Hier wird der Weg über eine MySQL-Initialisierungs-Datei gegangen:

/etc/init.d/mysql stop
echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');" >~/setrootpassword.sql
mysqld_safe --init-file=~/setrootpassword.sql
#[ctrl]+[c]
/etc/init.d/mysql start
rm -f ~/setrootpassword.sql

PS: Falls mal alle User weg sein sollten, kann man natürlich auch einen neuen root-User anlegen. Statt SET PASSWORD ... muss dann folgender SQL-Befehl gesetzt werden:

GRANT ALL PRIVILEGES TO root@localhost IDENTIFIED BY 'MyNewPassword';

Selber Weg mit zwei Shells:

Erste Shell:

/etc/init.d/mysql stop
/usr/sbin/mysqld --skip-networking --skip-grant-tables

Zweite Shell:

mysqladmin -u root password "NEUESPW"

Wieder erste Shell:

#[ctrl]+[c]
/etc/init.d/mysql start

2.Lösung:

Diese wird als nicht so sicher angesehen, da das Passwort später in der MySQL-History sichtbar ist. Dies werden wir hier aber danach löschen.

Editier die my.cnf (/etc/my.cnf oder Debian: /etc/mysql/my.cnf) und schreibe in die [mysqld]-Sektion:
skip-grant-tables

/etc/init.d/mysql restart
mysql -uroot
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
exit
# "skip-grant-tables" wieder aus der my.cnf rausnehmen
/etc/init.d/mysql restart

Um das Passwort aus der MySQL-History zu löschen, öffnet man die Datei ~/.mysql_history im Editor, sucht nach der o.g. Zeile und löscht diese.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

vom 2006-11-16 10:04, zuletzt 2007-01-09 10:19     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   4.5 von 5 (26 Bewertungen)

Artikel kommentieren

Kommentar von Joerg Pirnack (2010-02-10 14:58:17):
Da für mich MySQL leider immer noch ein Ding mit sieben Siegeln ist, mir allerdings die Sache mit dem vergessen auch schon passiert ist, ist dieser Beitrag höchst interessant für mich gewesen. Man muß sich als Admin doch mehr damit auseinandersetzen ;-)

Kommentar von Kai (2010-03-27 15:47:53):
Vielleicht eine dumme Frage, aber wo finde ich denn die Datei ~/ mysql_history ?

Kommentar von Mike (2010-12-26 17:17:49):
Wie kann ich überhaupt die ganzen passwörter von E-Mails,MYSQL und Kunden auslesen.

Kommentar von rooter (2011-05-07 01:42:51):
Hmm, vielleicht bin ich zu doof, aber es klappt unter Ubuntu nicht. Ich bin der Anleitung gefolgt, aber ich erhalte höchstens Fehlermeldungen...

Zum anderen Thema:
Warum möchte man die Daten seiner Kunden einsehen? Wenn diese Verschlüsselt sind wird das doch ein Grund haben, oder nicht? ;-)

Kommentar von ich (2012-01-26 02:04:14):
Hallo, bevor man mit GRANT einen Query ausführen kann, muss die "flush privileges;" ausführen.

Kommentar von huschi (2012-01-26 08:05:34):
@ich:
Ein flush-privileges ist in beiden Lösungen nicht nötig. Das erledigt ein MySQL-Restart.

Kommentar von Jörg Backes (2012-04-05 04:29:23):
Ggf. sollte man statt mysqld mysqld_safe verwenden, habe ich hier gefunden:

http://wiki.manitu.de/index.php/Server:MySQL-root-Passwort_vergessen_und_neu_setzen

Kommentar von huschi (2012-04-05 14:02:55):
@Jörg:
Ist egal ob mysqld oder mysqld_safe.
Liegt in der Natur der Sache.

Kommentar von swaen (2015-01-17 18:30:31):
Super Anleitung. Hat mir sehr geholfen, nur mit einem Punkt komme ich nicht ganz klar. Unter der Lösung mit my.cnf ändern habe ich keinen Eintrag in .mysql_history gefunden, welchen ich entfernen muss. Hat sich das mit einer bestimmten Version Mysql geändert oder bin ich Blind? Ich hab die Version 5.6.12-7.2.2.i586.

Gruß