目录
- :one:确认服务名
- :two:停止MySQL服务
- [:three:用跳过权限表的方式启动 MySQL](#:three:用跳过权限表的方式启动 MySQL)
- :four:另开一个窗口
1️⃣确认服务名
-
用管理员身份打开
命令提示符(不是win+r,再输入cmd的操作)- 可以在搜索栏搜索命令提示符 ,在点以管理员身份打开就行了
-
输入
net stop mysql,可能会和我一样,服务名无效,无效的执行下面操作,可以的直接跳到3️⃣那操作

- 确认服务名:
sc queryex type= service state= all | findstr /i "mysql"

2️⃣停止MySQL服务
net stop MySQL80,这里,如果确认了自己的服务名是什么就填什么,不一定和我的服务名相同的

3️⃣用跳过权限表的方式启动 MySQL
- 这个是网上很多人这么教的
mysqld --console --skip-grant-tables --shared-memory输入这个指令,如果没有问题可以跳过下面操作- 但我执行后发现无法启动,有错误,
mysqld 找不到你指定的数据目录,所以这时候我们需要手动修改一下

- 找到自己的数据目录,通过
my.ini文件以记事本打开来看,这个文件可以通过everything这个软件 来找到,这样就不需要自己翻找了,可以参考这个链接来下载(没有安装过的话)🔗everything下载和安装 - 打开
my.ini文件找到数据目录

- 启动命令
mysqld --console --skip-grant-tables --shared-memory --datadir="D:\MySQL\data dir\MySQL Server 8.0\Data", "D:\MySQL\data dir\MySQL Server 8.0\Data"这个部分内容根据实际目录来进行修改

- 启动后窗口会输出日志,不要关掉,等看到
ready for connections - 不要关闭窗口,新开一个窗口
4️⃣另开一个窗口
- 保持上面窗口不动,重新以管理员身份打开一个新的命令提示符
- 输入
mysql
4.1、修改密码
- 因为前面(上个窗口那)加了
--skip-grant-tables,这里不需要密码就能登录。 - 直接修改密码,但可能你会失败,此时刷新一下权限表就可以了
- 输入
FLUSH PRIVILEGES;进行刷新 - 再修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

4.2、退出,启动服务并进行验证
- 记得关闭第一个窗口

- 下面操作都是在第二个窗口执行的
- 退出
quit - 启动服务:
net start MySQL80 - 用新密码进行验证:
mysql -u root -p,输入新密码成功就说明重置成功了
