MySQL忘记密码后重置密码(Windows)经验汇总(保姆级教程)

忘记密码后重置密码!全网最全保姆级教程!
我的MySQL版本是8.0.37,仅供参考。

关闭MySQL服务

两种方案:
方案1:右键单击此电脑>管理>服务,找到在这里插入图片描述
这个MySQL80,右键手动停止服务(MySQL版本不同,后面的数字会不一样)。
方案2:打开命令提示符(cmd)并输入以下命令。

net stop mysql

跳过权限表

Windows找到MySQL下载目录,一般在C:\Program Files\MySQL\MySQL Server 8.0\bin。在该目录使用管理员权限打开命令提示符。在cmd窗口输入

mysqld --skip-grant-tables

跳过权限表。如果没有ERROR字样直接下一步,如果出现

 Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
 Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)

则使用以下命令进行跳过:

mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory

(文件路径即你的my.ini存储路径,如有不同请自行替换)
一般这一步就能成功跳过(帖主到这里已经成功,没有后续尝试),此时千万不要关闭该命令行窗口(关闭的请按上述步骤重新打开)

启动MySQL并修改密码

不要关闭上述步骤的cmd窗口,使用管理员权限再打开一个cmd窗口,此处在当前目录即可,不用cd到其他目录下。

启动数据库
mysql -u root

(此时不需要输密码,如果需要输密码,可能是上一步跳过权限表失败,需要重新跳过)

连接数据库
use mysql

在这里插入图片描述

查看user主机名
select user, host from user;

在这里插入图片描述
此处,有的root的对应的host名为%,后续也会提到。

刷新执行指令
flush privileges

在这里插入图片描述

修改密码

如果你的root对应的是localhost,输入

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123’;

如果你的root对应的是%,输入

ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘123’;

在这里插入图片描述
密码修改成功!新密码为123(此处可以在123处重置为任何你想改的密码)

如果上述方法仍不能修改,请看这里

1)再次查看 mysql 数据库中 user 表的 plugin 字段:

mysql> select user, host, plugin from user;

2)如果发现 root 用户是 caching_sha2_password 的插件,而不是 mysql_native_password 插件,可以把它改成 mysql_native_password 插件。

mysql> update user set plugin=‘mysql_native_password’ where user=‘root’;
把用户root对应的%改为localhost
update user set host=‘localhost’ where host=‘%’ and user=‘root’;

验证

关闭上述两个cmd窗口,使用管理员权限重新打开一个cmd窗口,输入mysql -u root -p回车,然后输入刚刚修改的密码,出现welcome即为登录成功。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值