So setzen Sie das Passwort zurück, wenn Sie es in MySQL8 vergessen haben (die alte MySQL-Methode funktioniert nicht)

So setzen Sie das Passwort zurück, wenn Sie es in MySQL8 vergessen haben (die alte MySQL-Methode funktioniert nicht)

Die Befehlszeile mysqld –skip-grant-tables kann in mysql8 nicht erfolgreich gestartet werden und der Parameter kann in der INI-Datei nicht gestartet werden.

Das MySQL-Passwort wird in der Benutzertabelle gespeichert. Das Ändern des Passworts bedeutet tatsächlich, dass der Datensatz in der Tabelle geändert wird.

Die Idee des Zurücksetzens besteht darin, einen Weg zu finden, ohne Kennwort in das System einzusteigen und dann mithilfe von Datenbankbefehlen den Kennwortdatensatz in der Benutzertabelle zu ändern.

Nach der Überprüfung besteht die vom MySQL5-System im Internet empfohlene Methode darin, den MySQL-Dienst mit dem Parameter --skip-grant-tables zu starten. Dies bedeutet, dass die Autorisierungstabelle beim Start nicht geladen wird. Nach dem erfolgreichen Start kann sich der Root-Benutzer also mit einem leeren Kennwort anmelden.

mysqld --skip-grant-tables

Nach dem Einloggen können Sie

UPDATE Benutzer SET authentication_string=” WHERE Benutzer='root';

Diese Befehle legen das Passwort fest oder lassen es leer.

Allerdings kann die Befehlszeile wie mysqld –skip-grant-tables in mysql8 nicht erfolgreich gestartet werden und der Parameter kann in der INI-Datei nicht gestartet werden.

Zwei Ideen zum Zurücksetzen des MySQL8-Systemkennworts

Es gibt zwei Möglichkeiten. Sie können den Parameter --init-file verwenden, um die Befehlsdatei zum Ändern des Kennworts beim Start des Dienstes zu laden und auszuführen. Sobald der Befehl ausgeführt wird, wird das Kennwort nach dem Start des Dienstes gelöscht oder zurückgesetzt. Nach dem Start des Dienstes können Sie sich mit einem leeren Kennwort oder einem angegebenen Kennwort anmelden.

Oder untersuchen Sie weiter, warum der Dienst mit dem Befehlszeilenparameter –skip-grant-tables nicht gestartet werden kann, lösen Sie das Problem, starten Sie dann den Dienst und melden Sie sich mit einem leeren Kennwort an. Geben Sie den Befehl zum Löschen oder Zurücksetzen des Kennwortdatensatzfelds in der Tabelle mysql.user manuell ein.

Ersteres ist zu empfehlen.

Der konkrete Betriebsablauf ist wie folgt:

Methode 1: Verwenden Sie den Parameter --init-file, um

Dieser Parameter gibt an, dass beim Starten des Dienstes eine SQL-Befehlsdatei ausgeführt wird. Sie müssen daher nur den Befehl zum Zurücksetzen des Kennworts in die Datei schreiben und mit diesem Parameter angeben, dass der Befehl beim Start ausgeführt wird. Nach Abschluss des Startvorgangs können Sie das Systemkennwort zurücksetzen.

Der erste Schritt besteht darin, den Systemdienst herunterzufahren

Netzstopp MySQL

Der zweite Schritt besteht darin, eine Textdatei zu erstellen, die einen Befehl zur Kennwortänderung enthält

ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH ';

Schritt 3: Starten Sie den Server im Befehlszeilenmodus und geben Sie die Befehlsdatei zur Kennwortänderung an, die beim Start ausgeführt werden soll

mysqld –init-file=d:mysqlc.txt –console

Screenshots spezifischer Vorgänge

Methode 2: Finden Sie eine Möglichkeit, den Parameter --skip-grant-tables zu verwenden

Wie bei Methode 1, schalten Sie zuerst den Systemdienst aus

Beim tatsächlichen Testen kann der Dienst unter dem mysql8-System mit mysqld –console –skip-grant-tables –shared-memory ohne Kennwort gestartet werden.

Nachdem der Dienst gestartet wurde, melden Sie sich mit einem leeren Passwort am System an

mysql.exe -u root

Führen Sie dann den SQL-Befehl aus, um das Root-Benutzerkennwort auf leer zu setzen

UPDATE mysql.user SET authentication_string=” WHERE user='root' und host='localhost';

Screenshots spezifischer Vorgänge

Aufgrund einiger Funktionen von MySQL 8 ist die alte Reset-Methode nicht sehr effektiv. Es wird empfohlen, den Parameter –init-file zu verwenden, um das Problem zu lösen. Es wurde getestet, dass es sicher und zuverlässig ist.

Der Verlust Ihres Datenbankverwaltungskennworts ist ein echtes Ärgernis. Wenn Sie es nicht erfolgreich abrufen können, stecken Sie in großen Schwierigkeiten. Die meisten Lösungen im Internet sind veraltet. Es wird empfohlen, diesen Artikel zu speichern und ihn bei Bedarf zu lesen.

Das könnte Sie auch interessieren:
  • Die perfekte Lösung, um das Passwort in mysql8.0.19 zu vergessen
  • Lösung zum Vergessen des Root-Passworts von MySQL5.7 unter Windows 8.1
  • Eine kurze Analyse zum besten Umgang mit vergessenen MySQL 8-Passwörtern
  • Fallstricke bei der Installation des komprimierten MySQL 8.0.18-Pakets und beim Zurücksetzen vergessener Passwörter
  • mysql8.0: Passwortänderung vergessen und Problem mit ungültigem Net-Befehlsdienstnamen
  • Schnelle Lösung zum Vergessen des MySQL8-Passworts

<<:  Tipps zum Anzeigen von Text in Linux (super praktisch!)

>>:  Detaillierte Erläuterung der erweiterten Konstruktionseigenschaften von Vue

Artikel empfehlen

Detaillierte Erläuterung der JS ES6-Codierungsstandards

Inhaltsverzeichnis 1. Umfang des Blocks 1.1. let ...

Informationen zur Installation des Python3.8-Images im Docker

Offizielle Docker Hub-Website 1. Suchen Sie nach ...

Zusammenfassung der MySQL-Tabellen- und Spaltenkommentare

Genau wie bei Code können Sie den Tabellen und Sp...

JavaScript-Implementierung eines Karussellbeispiels

In diesem Artikel wird der spezifische Code für J...

jQuery implementiert alle Warenkorbfunktionen

Inhaltsverzeichnis 1. Alles auswählen 2. Erhöhen ...

Zusammenfassung des MySQL Undo Log und Redo Log

Inhaltsverzeichnis Undo-Protokoll Erstellung und ...

Beispielmethode zum Anzeigen der mit MySQL verbundenen IP-Adresse

Spezifische Methode: Öffnen Sie zuerst die Eingab...