In einem unglücklichen Fall, in dem Sie Ihr MySQL-Root-Passwort vergessen oder verlieren, brauchen Sie sicherlich eine Möglichkeit, es irgendwie wiederherzustellen. Was wir wissen müssen, ist, dass das Passwort in der Benutzertabelle gespeichert ist. Das bedeutet, dass wir einen Weg finden müssen, die MySQL-Authentifizierung zu umgehen, damit wir den Passworteintrag aktualisieren können.
Glücklicherweise gibt es eine einfache Lösung, und dieses Tutorial führt Sie durch den Prozess zum Wiederherstellen oder Zurücksetzen des Root-Passworts in der MySQL 8.0-Version.
Gemäß der MySQL-Dokumentation gibt es zwei Möglichkeiten, das Root-MySQL-Passwort zurückzusetzen. Wir werden beides prüfen.
MySQL-Root-Passwort mit –init-file zurücksetzen
Eine Möglichkeit, das Root-Passwort zurückzusetzen, besteht darin, eine lokale Datei zu erstellen und dann den MySQL-Dienst mit --init-file
zu starten Option wie gezeigt.
# vim /home/user/init-file.txt
Es ist wichtig, dass Sie sicherstellen, dass die Datei für den mysql-Benutzer lesbar ist. Fügen Sie in dieser Datei Folgendes ein:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Ändern Sie oben „new_password ” mit dem Passwort, das Sie verwenden möchten.
Stellen Sie nun sicher, dass der MySQL-Dienst beendet ist. Sie können Folgendes tun:
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
Führen Sie dann Folgendes aus:
# mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Dadurch wird der MySQL-Dienst gestartet und während des Vorgangs die von Ihnen erstellte Init-Datei ausgeführt und somit das Passwort für den Root-Benutzer aktualisiert. Achten Sie darauf, die Datei zu löschen, nachdem das Passwort zurückgesetzt wurde.
Stellen Sie sicher, dass Sie den Server stoppen und danach normal starten.
# systemctl stop mysqld.service # for distros using systemd # systemctl restart mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init # /etc/init.d/mysqld restart # for distros using init
Sie sollten sich jetzt mit dem neuen Passwort als root mit dem MySQL-Server verbinden können.
# mysql -u root -p
MySQL-Root-Passwort mit –skip-grant-tables zurücksetzen
Die zweite Möglichkeit besteht darin, den MySQL-Dienst mit --skip-grant-tables
zu starten Möglichkeit. Dies ist weniger sicher, da sich alle Benutzer ohne Passwort verbinden können, während der Dienst auf diese Weise gestartet wird.
Wenn der Server gestartet wird --skip-grant-tables
, die Option für --skip-networking
wird automatisch aktiviert, sodass keine Remote-Verbindungen verfügbar sind.
Stellen Sie zunächst sicher, dass der MySQL-Dienst beendet ist.
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
Starten Sie dann den Dienst mit der folgenden Option.
# mysqld --skip-grant-tables --user=mysql &
Dann können Sie sich mit dem MySQL-Server verbinden, indem Sie einfach ausführen.
# mysql
Da die Kontoverwaltung deaktiviert ist, wenn der Dienst mit --skip-grant-tables
gestartet wird Option, müssen wir die Zuschüsse neu laden. So können wir später das Passwort ändern:
# FLUSH PRIVILEGES;
Jetzt können Sie die folgende Abfrage ausführen, um das Kennwort zu aktualisieren. Stellen Sie sicher, dass Sie „new_password“ durch das tatsächliche Passwort ersetzen, das Sie verwenden möchten.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Stoppen Sie nun den MySQL-Server und starten Sie ihn normal.
# systemctl stop mysqld.service # for distros using systemd # systemctl restart mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init # /etc/init.d/mysqld restart # for distros using init
Sie sollten sich mit Ihrem neuen Passwort verbinden können.
# mysql -u root -p
Vielleicht möchten Sie auch diese nützlichen Artikel zu MySQL lesen.
- So installieren Sie MySQL 8 in CentOS, RHEL und Fedora
- 15 nützliche Tipps zur Optimierung und Optimierung der MySQL-Leistung
- 12 MySQL-Sicherheitspraktiken für Linux
- 4 nützliche Kommandozeilen-Tools zur Überwachung der MySQL-Leistung
- MySQL-Datenbankverwaltungsbefehle
Schlussfolgerung
In diesem Artikel haben Sie gelernt, wie Sie das verlorene Root-Passwort für den MySQL 8.0-Server zurücksetzen. Ich hoffe, der Vorgang war einfach.