Es kann immer wieder vorkommen, dass Administratoren das root Passwort für ihre MySQL Datenbank vergessen oder verloren haben. In dem folgenden kurzen how-to möchte ich erklären, wie auf UNIX-artigen Systemen das MySQL root Passwort neu gesetzt werden kann, ohne das Passwort zu kennen. Voraussetzung ist ein SSH Zugriff mit root Privilegien auf das entsprechende System.
MySQL stoppen
/etc/init.d/mysql stop
MySQL wieder mit dem kein Netzwerk Parameter starten und das Passwort neu ersetzen. Solange MySQL mit diesen Parametern läuft, werden die Privilegien und die Netzwerkfunktionalitäten umgangen. MySQL ist somit ungeschützt.
mysqld --user=mysql --skip-networking --skip-grant-tables --datadir=/var/lib/mysql & su - mysql -c "mysqladmin --user root password 'NEUESPASSWORT'"
Um sicher zu gehen, sollte noch den folgenden SQL-Befehl abgesetzt werden. Dies kann auch mit Hilfe von phpMyAdmin geschehen.
use mysql;
update user set Password = Password('NEUESPASSWORT') where User = 'root';
FLUSH PRIVILEGES;
MySQL stoppen
/etc/init.d/mysql stop
MySQL wieder unter normalen Bedingungen starten
/etc/init.d/mysql start
Der MySQL-Benutzer root hat nun das neu zugewiesene Passwort. Administratoren sollten sich jedoch auf keinen Fall auf diese Möglichkeit verlassen. Es ist immer besser das Passwort aufzuschreiben und an einem sicheren Ort aufzubewahren.