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

5 Tipps zum Schreiben von CSS, um Ihren Stil standardisierter zu gestalten

1. CSS alphabetisch ordnen Nicht in alphabetischer...

Detaillierte Schritte zur Installation eines Hadoop-Clusters unter Linux

Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...

MySQL-Backup-Tabellenvorgang basierend auf Java

Der Kern ist mysqldump und Runtime Der Vorgang is...

So implementieren Sie Call, Apply und Binding in nativem JS

1. Implementieren Sie den Anruf Schritt: Legen Si...

Objektorientierte JavaScript-Implementierung eines Lupengehäuses

In diesem Artikel wird der spezifische Code der o...

Tipps zum Mischen von OR und AND in SQL-Anweisungen

Heute gibt es eine solche Anforderung. Wenn die a...

SQL-Aggregation, Gruppierung und Sortierung

Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...

So legen Sie eine statische IP für den Ubuntu 18.04-Server fest

1. Hintergrund Netplan ist ein neues Befehlszeile...