Das nachfolgende Tutorial beschreibt, wie sich das MySQL root Passwort von der Kommandozeile (unter Linux) zurücksetzen lässt.
Im ersten Schritt wird der MySQL Service gestoppt:
sudo systemctl stop mysql
Danach wird der MySQL-Server ohne Berechtigungstabellen gestartet. Dadurch kann jeder ohne Passwort mit allen Rechten auf die Datenbank zugreifen:
sudo mysqld_safe --skip-grant-tables &
Nun als root User ohne Passwort mit der Datenbank verbinden:
mysql -u root
Folgende Schritte durchführen, um ein neues Passwort zu setzen (MY_NEW_PASSWORD anpassen):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
FLUSH PRIVILEGES;
Wenn der vorhergehende Befehl nicht funktioniert, stattdessen diese Version testen:
UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
Bei älteren MySQL-Versionen (5.7.5 und früher) muss folgender Befehl genutzt werden:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;
Wenn alles klappt sollte folgende Rückgabe kommen:
Query OK, 0 rows affected (0.00 sec)
Anschließend die Datenbank stoppen und wieder normal starten. Zunächst die Datenbank stoppen:
mysqladmin -u root -p shutdown
Der Server wird nun nach dem neuen root Kennwort fragen. Nachdem der Server gestoppt wurde, anschließend wieder starten:
sudo systemctl start mysql
Anschließend kannst du über folgenden Befehl erneut verifizieren, ob das neue Passwort funktioniert:
mysql -u root -p
Wenn alles geklappt hat ist das root Passwort nun zurückgesetzt.