1. authentication_string
Dies ist eine neue Änderung, die in Mysql8.0 vorgenommen wurde. In der alten Version wurde die Funktion „password()“ verwendet. authentication_string
这是Mysql8.0新做出的修改,在旧版本中使用的是password()函数。
2,在网上找到的“mysql忘记密码”的解决方案中,大多会使用UPDATE user SET authentication_string="12345" WHERE user="root";
来直接将密码改成12345,实际上这是错误的用法,authentication_string中存储的是密文,如果直接改为"12345"这样的明文会导致密码错误登录不上。
原因是服务器在验证身份时会先将用户输入的明文转为密文与数据库中的密文作对比验证是否匹配,而直接在本应放密文的地方放入明文显然不会让它们匹配成功。
3,在网上近似的搜索结果“mysql修改密码”中,会使用alter user root@localhost identified by '12345'
来修改密码,这句命令在“跳过授权表”时是使用不了的,唯有正常模式下可以使用
4,才有了这样的解决方法,先将authentication_string变为空,毕竟空值的明文密文都是空值,用空密码进入mysql正常模式后再使用alter将密码改掉即可。
1,停止mysql服务
net stop mysql
2,输入命令,进入“跳过授权表”模式
mysqld --console --skip-grant-tables --shared-memory
3,上一个cmd窗口先放一旁,另开个管理员cmd窗口,输入mysql
进入mysql服务
4,输入use mysql
进入mysql数据库,再将authentication_string改为空
USE mysql; UPDATE user SET authentication_string="" WHERE user="root";
5,刷新权限,退出
FLUSH privileges; exit;
6,第一个cmd窗口中,使用ctrl+c
UPDATE user SET Authentication_string="12345" WHERE user="root";
, um das Passwort direkt zu ändern In der Tat handelt es sich um eine falsche Verwendung. Der Authentication_String speichert Chiffretext, z. B. „12345“. Das Passwort ist falsch und die Anmeldung ist nicht möglich. Der Grund dafür ist, dass der Server bei der Überprüfung der Identität zunächst den vom Benutzer eingegebenen Klartext in Chiffretext umwandelt und ihn mit dem Chiffretext in der Datenbank vergleicht, um zu überprüfen, ob er übereinstimmt. Klartext wird offensichtlich direkt dort platziert, wo der Chiffretext platziert werden soll Lassen Sie sie nicht erfolgreich zusammenpassen.
3. Im ähnlichen Online-Suchergebnis „MySQL-Passwort ändern“ wird alter user root@localhost identifiziert durch „12345“
verwendet, um das Passwort zu ändern. Dieser Befehl ist in „Berechtigungstabelle überspringen“ Es kann nicht verwendet werden, kann aber nur im normalen Modus verwendet werden
🎜2. Lösungsschritte🎜🎜1. Stoppen Sie den MySQL-Dienst🎜
net start mysql
mysql -uroot -p
use mysql
ein, um Geben Sie die MySQL-Datenbank ein und ändern Sie dann die Authentifizierungszeichenfolge in leer Root-Passwort, wenn MySQL8.0/8.x das Passwort vergisst" />🎜🎜5, Berechtigungen aktualisieren, beenden🎜alter user root@localhost identified by '12345' FLUSH privileges; exit
Strg+C
Um den Modus „Autorisierungstabelle überspringen“ zu verlassen, starten Sie den MySQL-Dienst 🎜rrreee🎜🎜🎜🎜7, melden Sie sich mit einem leeren Passwort an und verwenden Sie dann die alter-Anweisung, um das Passwort zu aktualisieren, Berechtigungen zu aktualisieren und zu beenden 🎜rrreeerrreee🎜🎜 🎜🎜8, versuchen Sie, sich mit Passwort anzumelden, erfolgreich. 🎜🎜🎜🎜Das obige ist der detaillierte Inhalt vonSo ändern Sie das Root-Passwort, wenn Sie Ihr Passwort in MySQL8.0/8.x vergessen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!