mysql8.0.12忘记密码及输入密码无法进入处理方法
本人也是最近由于开发学习需要,接触了windows10下的mysql8,刚开始遇到许多问题,特此记录,以免忘记,如有错误,欢迎大神留言指导,当然我也参考了网上各位大佬的方法才得以成功,下面废话不多说,进入正题:
报错信息如下图:
第一步
以管理员身份运行控制台,关闭MySQL服务。
使用命令:
net stop mysql
第二步:
先进入至mysql的bin目录下,使用命令使mysql跳过密码验证,我的放在D盘,读者请视实际情况更改部分指令(也就是路径)
然后使用如下指令:
mysqld --console --skip-grant-tables --shared-memory
结果如下,这个时候已经成功了,但是这个窗口已经处于无法输入状态,具体原因我也不清楚,所以我们需要重新开一个控制台(快捷键win+R)
第三步:
首先进入mysql/bin目录
然后运行指令
mysql.exe -u root
能看到最下面的mysql> 就表示成功进入了mysql
第四步:
使用mysql数据库,用如下指令:
use mysql
第五步:使用如下指令先把root的密码设置为空(注意此时不能设置密码,一定要为空,否则会出错,至少我的电脑是这样)
UPDATE mysql.user SET authentication_string=’’ WHERE user=‘root’;
注意string=后面是2个单引号代表空字符
这样代表执行成功
第六步:
使用命令:
select host,user,authentication_string from mysql.user;
修改之后可以看到,root用户的密码已经为空。
第七步:
使用如下命令设置密码,我这里为123456
UPDATE mysql.user SET authentication_string='root' WHERE user='root' and host='localhost';
此时已经设置成功,可以再次使用第六步的命令查看密码
可以看到已经变成了123456
第八步:
新开一个控制台验证密码是否正确,当然套路一样,先进入mysql/bin目录下
然后执行指令
mysql -u root -p
再输入密码
最后,我们依然看到了最下面的mysql>
此时就已经成功了。
最后再介绍一个初始化mysql的指令,当然也要在mysql/bin目录下运行,且要把mysql目录下的data文件夹删除,否则无法初始化,因为data是之前存放的数据,mysql不会乱动的,得由您亲自删除(当然如果没有重要数据的话)
mysqld --initialize --user=mysql --console