Was kann ich tun wenn ich mein SQL-Passwort verloren habe?
Sie müssen MySQL mit der Option
--skip-grant-tables neu starten. Mit dieser Option werden für Tabellen keine Rechte mehr gesetzt und jeder kann auf alle Tabellen zugreifen. Dann kann man das root-Passwort schnell ändern und danach MySQL wieder ohne diese Option neu starten.
Verbinden Sie sich per SSH mit Ihrem Server und folgen Sie dieser Anleitung:
- Zuerst wird der MySQL-Server angehalten:
# /etc/init.d/mysql stop
- Dann wird der Server ohne Rechteverwaltung neu gestartet:
# safe_mysqld --skip-grant-tables &
- Nun verbinden wir uns mit der MySQL-Datenbank als root (ohne Passwort da die Rechteverwaltung deaktiviert wurde):
[root@julien /]# mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is *** to server version: ****
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
Sie sind nun auf der MySQL-Konsole und können dierekt SQL-Befehle eingeben. Um das Passwort zu ändern tun Sie folgendes:
mysql> UPDATE user SET password=PASSWORD('neues_passwort') WHERE User="root" AND Host="localhost";
mysql> FLUSH PRIVILEGES;
neues_passwort steht für ein neues Passwort Ihrer Wahl; Sie können nun die MySQL-Konsole verlassen:
mysql> q
- Das Passwort ist geändert, wir können nun den MySQL-Server stoppen:
# killall mysqld
- Und ihn dann gleich wieder neu starten:
# /etc/init.d/mysql start
- Um das neue Passwort zu testen geben Sie folgenden Befehl ein:
[root@julien /]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is *** to server version: ****
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
Hier finden Sie die offizielle Dokumentation von MySQL zu diesem Thema:
www.mysql.com/doc/en/Resetting_permissions.html