Setzen Sie das MySQL-Root-Passwort in Ubuntu zurück
- Setzen Sie das vergessene MySQL-Root-Passwort in Ubuntu zurück
-
Fehler beim Festlegen eines MySQL-Passworts
root
mitmysql_secure_installation
behoben
Dieses Tutorial betrachtet zwei Szenarien, in denen wir das MySQL-Root-Passwort in Ubuntu zurücksetzen müssen. Erstens, wenn wir das root
-Passwort vergessen und es zurücksetzen wollen; zweitens, wenn wir mit mysql_secure_installation
kein root
-Passwort setzen können.
Die Anweisungen in diesem Tutorial wurden mit MySQL Version 8.0.29 und Ubuntu 20.04.4 getestet. Sehen wir uns unten die Lösung für beide Szenarien an.
superuser
oder einer anderen Zugriffsmöglichkeit mit root
-Rechten ausgeführt wird.Setzen Sie das vergessene MySQL-Root-Passwort in Ubuntu zurück
Es ist richtig, ein starkes Passwort für eine Datenbank zu behalten, aber es kann schwierig sein, sich daran zu erinnern. Was ist, wenn Sie das MySQL-Root-Passwort vergessen?
Keine Panik! Viele von uns sind mit diesem Problem konfrontiert, aber es gibt eine Möglichkeit, es zu aktualisieren.
-
Überprüfen Sie Ihre MySQL-Version mit dem folgenden Befehl
$ mysql --version
-
Fahren Sie den MySQL-Server herunter.
Auf diese Weise können wir es einfach im abgesicherten Modus neu starten, um das
root
-Passwort zurückzusetzen. Sie müssen dasroot
-Passwort des Systems eingeben, in unserem Fall Ubuntu. -
Um den MySQL-Server ohne Tabellenzuweisungen zu starten, verwenden wir den folgenden Befehl, um die Konfigurationsdatei
systemd
zu aktualisieren, um beim Start zusätzliche Befehlszeilenparameter an den MySQL-Server zu übergeben.sudo systemctl edit mysql
Sobald Sie Enter drücken, wird eine Datei mit dem
nano
-Editor für Sie geöffnet. Wir werden es verwenden, um dieservice overrides
von MySQL zu bearbeiten.Auf diese Weise können wir die Standarddienstparameter von MySQL aktualisieren.
Fügen Sie der leeren Datei, die gerade im
nano
-Editor geöffnet wird, Folgendes hinzu.[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Sobald Sie den oben angegebenen Inhalt in die Datei eingefügt haben, drücken Sie Strg+X, um die Datei zu verlassen, und Y, um die gerade vorgenommenen Aktualisierungen zu speichern , und Enter um den Dateinamen zu bestätigen.
Hier löscht
ExecStart
zuerst alle Default-Werte und stellt dann demsystemd
einen neuen Startup-Befehl zur Verfügung, der verschiedene Parameter enthält. Diese Parameter deaktivieren das Laden der Netzwerk- und Grant-Tabellen. -
Um die Updates anzuwenden, führen Sie den folgenden Befehl aus, um die
systemd
-Konfiguration neu zu laden.sudo systemctl daemon-reload
-
Starten Sie den MySQL-Server mit dem folgenden Befehl; Es wird keine Ausgabe erzeugt, aber Sie können den Status des MySQL-Servers überprüfen.
sudo systemctl start mysql
Diesmal sind Netzwerk- und Grant-Tabellen nicht aktiviert.
-
Wir verbinden uns als
root
-Benutzer mit der Datenbank.sudo mysql -u root
-
Jetzt können wir das Passwort ändern, aber zuvor verwenden Sie den folgenden Befehl, um den Datenbankserver anzuweisen, die Grant-Tabellen neu zu laden.
mysql> FLUSH PRIVILEGES;
-
Führen Sie die folgende Anweisung aus, um das Passwort des MySQL-Benutzers
root
zurückzusetzen. Vergessen Sie nicht, dasmy_new_password
durch ein sicheres Passwort zu ersetzen, das Sie sich leicht merken können.ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'my_new_password';
Hier lässt uns MySQL die benutzerdefinierte Authentifizierung verwenden. Die obige Anweisung stellt also sicher, dass MySQL nun seine Standardauthentifizierung verwendet, um den MySQL-Benutzer
root
über ein neues Passwort zu authentifizieren.Bravo! Das Passwort des MySQL-Benutzers
root
ist jetzt geändert. Geben Sieexit
ein, um die MySQL-Shell zu verlassen. -
Setzen Sie den MySQL-Server auf die normalen Einstellungen zurück, indem Sie den folgenden Befehl ausführen.
sudo systemctl revert mysql
Wir sehen eine ähnliche Ausgabe wie die folgende, was bedeutet, dass die obige Anweisung erfolgreich ausgeführt wurde.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
-
Um die Änderungen zu übernehmen, laden Sie die
systemd
-Konfiguration neu.sudo systemctl daemon-reload
-
Starten Sie den MySQL-Server wie folgt neu.
sudo systemctl restart mysql
-
Führen Sie nun die folgende Anweisung aus, um sich als MySQL-Benutzer
root
mit dem neuen Passwort anzumelden.mysql -u root -p
Sie werden aufgefordert, das Passwort des MySQL-Benutzers
root
einzugeben. Geben Sie das neue Passwort ein und genießen Sie den Zugriff auf Ihren Datenbankserver.
Fehler beim Festlegen eines MySQL-Passworts root
mit mysql_secure_installation
behoben
Benutzer, die den MySQL-Server zum ersten Mal installieren, sind möglicherweise auf den folgenden Fehler gestoßen, der beim Festlegen eines MySQL-root
-Passworts mit mysql_secure_installation
generiert wird.
Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
Mach dir keine Sorge! Hier ist die Lösung dafür.
-
Beenden Sie den Prozess
mysql_secure_installation
oder schließen Sie das Terminal. -
Verwenden Sie die folgende Anweisung, um sich beim MySQL-Server anzumelden.
sudo mysql
Sie werden aufgefordert, das
root
-Passwort des Systems einzugeben. Sobald Sie das Passwort eingegeben haben, werden Sie zur MySQL-Konsole weitergeleitet. -
Führen Sie die folgende
ALTER
-Anweisung aus. Vergessen Sie nicht,my_new_password
durch Ihr Passwort zu ersetzen.mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';
Geben Sie außerdem
exit
ein, um die MySQL-Shell zu verlassen. -
Verwenden Sie die nachstehende Anweisung, um sich mit dem neuen Passwort anzumelden.
mysql -u root -p
Abschließend können Sie sich als
root
-Benutzer beim MySQL-Server anmelden.