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.