Für die Datenbank wäre es sehr fatal, wenn Sie das Passwort des Root-Benutzers vergessen, aber wir können die Berechtigungstabelle überspringen, indem wir den Parameter --ship-grant-tables
hinzufügen.
Die spezifische Methode lautet wie folgt:
Sie haben das Root-Passwort vergessen und können die Datenbank nicht betreten:
Zu diesem Zeitpunkt benötigen Sie Um das Anhalten der Datenbank zu erzwingen, überprüfen Sie zuerst MySQL. Prozessnummer
Töten Sie den MySQL-Prozess. Der Befehl lautet wie folgt:
Nach dem Beenden können Sie überprüfen ob noch Prozesse vorhanden sind
[root@tse2 tmp]# kill -9 9840 1 [root@tse2 tmp]# ps -ef |grep mysql
Es wird empfohlen, das Kennwort aufzuzeichnen und zum Speichern mit keepass zu speichern, wenn das Stoppen der Datenbank keine Auswirkungen auf das Geschäft hat die Passwort-Software!
Kostenloses Teilen von Lernvideo-Tutorials: MySQL-Video-Tutorial
Fügen Sie dann den Parameter der Skip-Berechtigungstabelle hinzu und starten Sie die Datenbank neu. Auf diese Weise können Sie die Datenbank auch ohne Eingabe eines Passworts betreten.
[root@tse2 bin]# mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables & [1] 4854
Geben Sie MySQL direkt ein, ohne ein Passwort einzugeben.
Legen Sie ein neues Passwort für den Root-Benutzer fest und aktualisieren Sie das Berechtigungen: Nach MySQL5.7 wird das Passwortfeld unter der Bibliothek durch das Feld „authentication_string“ ersetzt.
(product)root@localhost:mysql.sock [(none)]> use mysql; Database changed (product)root@localhost:mysql.sock [mysql]> update user set authentication_string=password('123456') where user='root'; Query OK, 0 rows affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 1 (product)root@localhost:mysql.sock [mysql]> flush privileges; Query OK, 0 rows affected (0.00 sec)
Nachdem die Einstellungen abgeschlossen sind, starten Sie die Datenbank neu. Beachten Sie, dass beim Neustart der Parameter --skip-grant-tables nicht hinzugefügt werden muss. Starten Sie den Dienst normal und geben Sie das neue Passwort ein, um die Datenbank normal aufzurufen. Nach dem Neustart werde ich hier testen, ob MySQL nicht ohne Passwort eingegeben werden kann.
[root@tse2 bin]# mysqld_safe --deaults-file=/etc/my.cnf & [2] 6720 [root@tse2 bin]# 2020-01-16T02:55:45.223195Z mysqld_safe Logging to '/mysql/mysql3306/logs/error.log'. 2020-01-16T02:55:45.262302Z mysqld_safe A mysqld process already exists [2]+ Exit 1 mysqld_safe --deaults-file=/etc/my.cnf [root@tse2 bin]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Geben Sie hier das Passwort ein, um eine Verbindung herzustellen, und Sie können es normal eingeben. Es ist das geänderte Passwort 123456
[root@tse2 bin]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. 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. (product)root@localhost:mysql.sock [(none)]> use mysql Database changed (product)root@localhost:mysql.sock [mysql]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ rows in set (0.01 sec)
Empfohlene verwandte Artikel-Tutorials: MySQL Tutorial
Das obige ist der detaillierte Inhalt vonMySQL-Root-Passwort zurücksetzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!