mysql8.0.12忘记密码及输入密码无法进入处理方法

本人也是最近由于开发学习需要,接触了windows10下的mysql8,刚开始遇到许多问题,特此记录,以免忘记,如有错误,欢迎大神留言指导,当然我也参考了网上各位大佬的方法才得以成功,下面废话不多说,进入正题:

报错信息如下图:

MySQL 输入密码root后一直不对 mysql输入密码后无反应_数据


第一步

以管理员身份运行控制台,关闭MySQL服务。

使用命令:

net stop mysql

MySQL 输入密码root后一直不对 mysql输入密码后无反应_MySQL 输入密码root后一直不对_02


第二步:

先进入至mysql的bin目录下,使用命令使mysql跳过密码验证,我的放在D盘,读者请视实际情况更改部分指令(也就是路径)

然后使用如下指令:

mysqld --console --skip-grant-tables --shared-memory

MySQL 输入密码root后一直不对 mysql输入密码后无反应_初始化_03


结果如下,这个时候已经成功了,但是这个窗口已经处于无法输入状态,具体原因我也不清楚,所以我们需要重新开一个控制台(快捷键win+R)

第三步:

首先进入mysql/bin目录

然后运行指令

mysql.exe -u root

MySQL 输入密码root后一直不对 mysql输入密码后无反应_初始化_04


能看到最下面的mysql> 就表示成功进入了mysql

第四步:

使用mysql数据库,用如下指令:

use mysql

MySQL 输入密码root后一直不对 mysql输入密码后无反应_mysql_05


第五步:使用如下指令先把root的密码设置为空(注意此时不能设置密码,一定要为空,否则会出错,至少我的电脑是这样)

UPDATE mysql.user SET authentication_string=’’ WHERE user=‘root’;

注意string=后面是2个单引号代表空字符

MySQL 输入密码root后一直不对 mysql输入密码后无反应_初始化_06


这样代表执行成功

第六步:

使用命令:

select host,user,authentication_string from mysql.user;

修改之后可以看到,root用户的密码已经为空。

MySQL 输入密码root后一直不对 mysql输入密码后无反应_数据_07


第七步:

使用如下命令设置密码,我这里为123456

UPDATE mysql.user SET authentication_string='root' WHERE user='root' and host='localhost';

MySQL 输入密码root后一直不对 mysql输入密码后无反应_MySQL 输入密码root后一直不对_08


此时已经设置成功,可以再次使用第六步的命令查看密码

MySQL 输入密码root后一直不对 mysql输入密码后无反应_数据_09


可以看到已经变成了123456

第八步:

新开一个控制台验证密码是否正确,当然套路一样,先进入mysql/bin目录下

然后执行指令

mysql -u root -p

再输入密码

MySQL 输入密码root后一直不对 mysql输入密码后无反应_初始化_10


最后,我们依然看到了最下面的mysql>

此时就已经成功了。

最后再介绍一个初始化mysql的指令,当然也要在mysql/bin目录下运行,且要把mysql目录下的data文件夹删除,否则无法初始化,因为data是之前存放的数据,mysql不会乱动的,得由您亲自删除(当然如果没有重要数据的话)

mysqld --initialize --user=mysql --console

MySQL 输入密码root后一直不对 mysql输入密码后无反应_mysql_11