Haben Sie Ihre MySQL-Datenbank root vergessen? Benutzer-Passwort? Keine Bange! Diese Schritt-für-Schritt-Anleitung erklärt, wie Sie das Root-Passwort in MySQL 8 auf dem Betriebssystem Ubuntu 20.04 zurücksetzen.
Hinweis: Wie Sie vielleicht bereits wissen, verwendet der MySQL-Root-Benutzer auth_socket Plugin zur Authentifizierung mit dem MySQL-Server in Ubuntu-Systemen, auf denen MySQL 5.7 und neuere Versionen ausgeführt werden. Sie können sich also als root beim MySQL-Server anmelden Benutzer mit sudo mysql Befehl, solange Sie den sudo Ihres Systembenutzers kennen Passwort. In diesem Fall ist es nicht erforderlich, das MySQL-root zu ändern Passwort. Wenn Sie die Authentifizierungsmethode für MySQL-Root bereits geändert haben Benutzer zu entweder caching_sha2_password oder mysql_native_password , führen Sie die folgenden Schritte aus, um den root zurückzusetzen Passwort der MySQL-Datenbank.
Root-Passwort in MySQL 8 unter Ubuntu Linux zurücksetzen
1. Stoppen Sie zuerst den MySQL-Dienst mit dem Befehl:
$ sudo systemctl stop mysql
Dadurch wird der MySQL-Dienst gestoppt, falls er ausgeführt wird. Sie können den Status des MySQL-Dienstes mit folgendem Befehl überprüfen:
$ sudo systemctl status mysql
Beispielausgabe:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago
Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
Main PID: 1446 (code=exited, status=0/SUCCESS)
Status: "Server shutdown complete"
May 31 07:57:50 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server…
May 31 07:57:51 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
May 31 11:01:14 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server…
May 31 11:01:15 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded.
May 31 11:01:15 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.
2. Als nächstes starten Sie den MySQL-Server ohne Berechtigungsprüfung. Führen Sie dazu Folgendes aus:
$ sudo systemctl edit mysql
Dadurch wird mysql geöffnet systemd Konfigurationsdatei Ihr Standard-Texteditor. In meinem Fall ist es nano Herausgeber.
Fügen Sie darin die folgenden Zeilen hinzu:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Nachdem Sie die obigen Zeilen hinzugefügt haben, drücken Sie CTRL+O und ENTER um die Datei zu speichern und drücken Sie dann CTRL+X um es zu schließen.
Hier die --skip-grant-tables Option ermöglicht es Ihnen, sich ohne Passwort und mit allen Privilegien mit dem MySQL-Datenbankserver zu verbinden. Außerdem werden Kontoverwaltungsanweisungen wie ALTER USER deaktiviert und SET PASSWORD . Und das --skip-networking Option wird verwendet, um zu verhindern, dass andere Clients eine Verbindung zum Datenbankserver herstellen. Da alle Remote-Verbindungen deaktiviert werden, kann keiner der Remote-Clients auf den Datenbankserver zugreifen, bis Sie den Datenbankserver normal neu starten.
3. Laden Sie systemd neu Konfiguration mit dem Befehl:
$ sudo systemctl daemon-reload
4. MySQL-Dienst starten:
$ sudo systemctl start mysql
Dadurch wird der MySQL-Server mit --skip-grant-table gestartet s und --skip-networking Optionen. Sie können dies überprüfen, indem Sie den Status des MySQL-Dienstes überprüfen:
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mysql.service.d
└─override.conf
Active: active (running) since Mon 2021-05-31 11:39:18 UTC; 1min 23s ago
Process: 1882 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 1905 (mysqld)
Status: "Server is operational"
Tasks: 36 (limit: 2280)
Memory: 331.0M
CGroup: /system.slice/mysql.service
└─1905 /usr/sbin/mysqld --skip-grant-tables --skip-networking
May 31 11:39:16 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server…
May 31 11:39:18 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
5. Verbinden Sie sich nun als root mit dem MySQL-Server Benutzer ohne Passwort:
$ sudo mysql -u root
Sie landen sofort im MySQL-Shell-Prompt.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
6. Wir haben uns beim Datenbankserver angemeldet, ohne Berechtigungstabellen zu laden (weil wir --skip-grant-tables verwendet haben Möglichkeit). Wir können also ALTER USER nicht verwenden Befehl, der zum Zurücksetzen des Passworts benötigt wird. Um Berechtigungstabellen zu laden, führen Sie den folgenden Befehl von der MySQL-Shell-Eingabeaufforderung aus:
mysql> FLUSH PRIVILEGES;
7. Führen Sie als Nächstes einen der folgenden Befehle aus, um MySQL root zurückzusetzen Passwort.
Wenn Sie caching_sha2_password verwenden Plugin, führe aus:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Wenn Sie mysql_native_password verwenden plugin, führen Sie stattdessen Folgendes aus:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
Ersetzen Sie Password123#@! mit Ihren eigenen.
Nach dem Ändern des MySQL-root Kennwort, verlassen Sie die Eingabeaufforderung der MySQL-Shell:
mysql> exit
8. Setzen Sie das geänderte systemd zurück Konfiguration zurück auf die normalen Einstellungen mit dem Befehl:
$ sudo systemctl revert mysql
Dadurch werden alle geänderten Dateien entfernt.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
9. Laden Sie systemd neu Konfiguration, um die Änderungen zu übernehmen:
$ sudo systemctl daemon-reload
10. Starten Sie schließlich den MySQL-Server normal neu:
$ sudo systemctl restart mysql
11. Jetzt sollten Sie sich als root mit der MySQL-Datenbank verbinden können Benutzer mit dem new password mit Befehl:
$ mysql -u root -p
Geben Sie den root ein Passwort für den Zugriff auf die MySQL-Shell-Eingabeaufforderung:
mysql>
Es gibt auch eine andere Möglichkeit, MySQL root zu ändern Passwort unter Linux. Es unterscheidet sich geringfügig von dieser Methode. Wenn Sie es wissen möchten, werfen Sie einen Blick auf den folgenden Link:
>> How To Reset MySQL Root User Password In Linux
Schlussfolgerung
Wie Sie sehen können, ist das Zurücksetzen des MySQL-Root-Passworts einfach! Wenn Sie die obigen Schritte sorgfältig befolgt haben, können Sie Ihr MySQL-Datenbank-Root-Passwort in wenigen Minuten wiederherstellen. Verliere es nicht wieder. Merken Sie sich Ihr Passwort oder bewahren Sie es an einem sicheren Ort auf.