今天遇到个问题,把 MySQL 的 root 密码忘记了,跟随网上教程走也不行。
先直接在 Google 搜索 “reset mysql 8 password windows”,第一条答案给的是加 init.txt,相当于是在启动时加入绕过指令。但是实测不起作用。
后来在 Stack Overflow 找到一个链接 https://stackoverflow.com/questions/50691977/how-to-reset-the-root-password-in-mysql-8-0-11 ,这才算是解决了问题。
具体的重置 root 密码操作如下:
-
先打开任务管理器,在”服务“标签页下停止掉"MYSQL80"的服务
-
打开 cmd,一路 cd 到 C:\Program Files\MySQL\MySQL Server 8.0\bin (或者是你自己的安装目录)
-
输入
mysqld --skip-grant-tables --shared-memory
(第一个参数是跳过权限检查,第二个似乎是 MySQL 8 需要的…我自己加了 不过没加入或许也行) -
在开始菜单打开
MySQL command line
,提示输入密码时直接按回车,此时应该可以直接登入 -
输入以下指令,重置密码 (把第三行
password
换成你自己的新密码)UPDATE mysql.user SET authentication_string=null WHERE User='root'; FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; FLUSH PRIVILEGES; exit;
-
关闭
MySQL command line
,回到 2 中打开的mysqld
,连按Ctrl+C
关闭mysqld
-
打开任务管理器,重新启动服务
MYSQL80
-
现在应该可以正常登入了