本人新装了Windows版本的MySQL8.0,然后不知道默认密码,想重置密码导致修改密码后依旧无法登陆。提供踩坑的解决方案(Linux没试过,但是觉得也可以参考)。
1、打开Windows的DOS窗口,管理员模式运行。切换至MySQL的安装目录下的bin目录。
2、使用命令停止MySQL服务。
3、输入mysqld --console --skip-grant-tables --shared-memory 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证,注意skip前面是两个“-” ,此时DOS窗口无法输入,需要再新开一个DOS窗口。
4、再新建的DOS的窗口中同样切换至MySQL安装目录下的bin目录,并执行mysql命令。
5、切换至mysql库,并将密码清空,也就是mysql库里user表中的authentication_string字段。然后可以使用查询语句查看字段结果。
- use mysql;
- update user set authentication_string='' where user='root';
- select host, user, authentication_string, plugin from mysql.user;
6、此时可以将第三步中启动的DOS窗口关闭了(窗口关闭,MySQL服务也会停止)。可以使用第四步新建的DOS窗口或者新建一个DOS窗口(同样是需要再MySQL安装目录下的bin目录),启动MySQL服务。
7、输入命令 mysql -u root -p 登陆MySQL。正常情况下是会提醒你输入登陆密码,因为在第五步的操作中将密码置空了,提示输入密码时,直接回车即可登陆。
8、修改密码为root,并重新查询表中字段信息。此时密码字段authentication_string不再是空,并且是密文显示。
- alter user'root'@'localhost' IDENTIFIED BY 'root';(修改密码为root,第一个root是账户名,第二个root是密码。由于我是新装的MySQL,还没开启远程访问权限,所以此处@后面是localhost,有些是填入%,此处需要填入对应的权限值)
- select host, user, authentication_string, plugin from mysql.user;
9、以上密码修改成功。可以使用DOS窗口,使用新修改的密码进行登陆验证。
附上解决中给予帮助的博文(无先后顺序),感谢。
Mysql 忘记root密码和修改root密码的解决方法(小结)、mysql8.0.19忘记密码、MYSQL8.0以上版本正确修改ROOT密码(可修改简单密码)