Setzen Sie das MySQL-Root-Passwort in Ubuntu zurück

Mehvish Ashiq 20 Juni 2023
  1. Setzen Sie das vergessene MySQL-Root-Passwort in Ubuntu zurück
  2. Fehler beim Festlegen eines MySQL-Passworts root mit mysql_secure_installation behoben
Setzen Sie das MySQL-Root-Passwort in Ubuntu zurück

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.

Note
Sie müssen Zugriff auf den Ubuntu 20.04.4-Server haben, auf dem MySQL mit einem 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.

  1. Überprüfen Sie Ihre MySQL-Version mit dem folgenden Befehl

    $ mysql --version
    
  2. 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 das root-Passwort des Systems eingeben, in unserem Fall Ubuntu.

  3. 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 die service 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 dem systemd einen neuen Startup-Befehl zur Verfügung, der verschiedene Parameter enthält. Diese Parameter deaktivieren das Laden der Netzwerk- und Grant-Tabellen.

  4. Um die Updates anzuwenden, führen Sie den folgenden Befehl aus, um die systemd-Konfiguration neu zu laden.

    sudo systemctl daemon-reload
    
  1. 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.

  2. Wir verbinden uns als root-Benutzer mit der Datenbank.

    sudo mysql -u root
    
  3. 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;
    
  4. Führen Sie die folgende Anweisung aus, um das Passwort des MySQL-Benutzers root zurückzusetzen. Vergessen Sie nicht, das my_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 Sie exit ein, um die MySQL-Shell zu verlassen.

  5. 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.
    
  6. Um die Änderungen zu übernehmen, laden Sie die systemd-Konfiguration neu.

    sudo systemctl daemon-reload
    
  1. Starten Sie den MySQL-Server wie folgt neu.

    sudo systemctl restart mysql
    
  2. 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.

  1. Beenden Sie den Prozess mysql_secure_installation oder schließen Sie das Terminal.

  2. 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.

  3. 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.

  4. 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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Root