Schritte zum Ändern des Passworts, wenn dieser vergessen wurde oder wegen eines Fehlers einfach nicht mehr geht:
[Schritt 1] Stop MySQL Server (bei Linux):
sudo systemctl stop mysql
[Schritt 2] Starte die Datenbank, ohne die Grant-Tabellen zu laden oder das Netzwerk zu aktivieren:
sudo mysqld_safe --skip-grant-tables --skip-networking &
The ampersand at the end of this command will make this process run in the background, so you can continue to use your terminal and run mysql -u root
(as root). It will not ask for a password.
Wenn Sie eine Fehlermeldung wie die folgende erhalten:
2021-02-12T08:57:39.826071Z mysqld_safe Directory '/var/run/mysqld' for UNIX
socket file don't exists.
mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)
[1]+ Exit 1
Erstelle das MySQL-Dienstverzeichnis.
sudo mkdir /var/run/mysqld
Gebe dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.
sudo chown mysql: /var/run/mysqld
Nun führe denselben Befehl wie in Schritt 2 aus, um MySQL im Hintergrund auszuführen.
[Schritt 3]
Führe mysql -u root
aus. So erhältst du Zugriff auf die MySQL-Konsole, ohne ein Passwort eingeben zu müssen.
Führe diese Befehle aus:
Für MySQL 5.7.6 und neuer
ALTER USER 'root'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT';
Für MySQL 5.7.5 und älter
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('DEIN_PASSWORT');
If the ALTER USER command doesn't work use:
UPDATE mysql.user SET authentication_string = PASSWORD('DEIN_PASSWORT') WHERE User = 'root' AND Host = 'localhost';
Und wenn alles nicht funktioniert dann nutze diesen Command:
update mysql.user set password=password('DEIN_PASSWORT') where user='root';
Now exit
Um die manuell gestartete Instanz zu stoppen:
sudo kill `cat /var/run/mysqld/mysqld.pid\
Restart MySQL
sudo systemctl start mysql