在windows 10上安装的mysql 8.0.27版本,忘记了msyql的密码而无法正常登录,查了很多帖子,讲的乱七八糟都成功不了。最终折腾一小时,经过如下尝试,终于成功,感觉对mysql8以上的应该都使用。
- 打开【服务】,在里面找到mysql,点击停止此服务,或者直接打开一个cmd窗口,输入
net stop mysql
。
- 用管理员模式再打开一个cmd窗口,输入:
mysqld --console --skip-grant-tables --shared-memory
会出现这样的输出并且卡住,记得千万不要关闭窗口或者Ctrl+C
- 再打开一个cmd窗口,直接输入mysql,就可以进去了。
进入mysql数据库:(mysql数据库的user表保存着登录用户信息)
use mysql;
- 修改用户密码为空
update mysql.user set authentication_string='' where user='root';
- 输入quit,退出mysql
- 重新登录mysql,输入
mysql -uroot -p
需要输入密码时,直接回车就可以
- 更新权限
FLUSH PRIVILEGES;
- 修改密码,your password是你想要的任何密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
- 修改完成后就可以用新的密码登录了(我在上一步输入的是123456)
- 关掉输入过
mysqld --console --skip-grant-tables --shared-memory
的小黑框,要么在【服务】中重启mysql服务,要么在一个新开的管理员模式的cmd中输入net start mysql
。