Windows下MySQL忘记root密码的两种解决办法

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

方法1:
对于忘记MySQL root用户密码,常规的解决方法是启动的时候加 skip-grant-tables 选项,在绕过密码认证之后,进入MySQL数据库系统,以便进行修复或重置密码等操作。

在window下,怎么操作呢,接下来为您介绍。
1、window下关闭MySQL相关服务
打开cmd窗口,我这里MySQL服务名称设置为了MySQL8031,所以这里是 net stop mysql8031
在这里插入图片描述
2、重新启动MySQL
用下面的命令启动MySQL服务

C:\Users\Administrator>cd /d D:\MySQL8031\bin

D:\MySQL8031\bin>mysqld --console --skip-grant-tables --shared-memory

通过mysqld --console --skip-grant-tables --shared-memory 启动可以跳过密码验证
在这里插入图片描述

3、打开另外一个cmd窗口登录MySQL

C:\Users\Administrator>cd /d D:\MySQL8031\bin

D:\MySQL8031\bin>mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.31 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4、设置新的root密码

update mysql.user set authentication_string='' where user='root';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

在这里插入图片描述
5、关闭上述终端,重新启动mysql

net start mysql8031

在这里插入图片描述
这样就可以用修改后的密码登录进去了

C:\Users\Administrator>cd /d D:\MySQL8031\bin\

D:\MySQL8031\bin>mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

方法2:
接下来,介绍另外一种更简单的方式。
新建一个newpass.txt文件(可以将它放在my.ini同目录)文件内容为:

ALTER user root@'localhost' identified by 'root';

关闭MySQL服务:

net stop mysql8031

在这里插入图片描述
用下面的命令启动MySQL服务:
D:\MySQL8031\bin\mysqld.exe --defaults-file=“D:\MySQL8031\my.ini” --init-file=“D:\MySQL8031\newpass.txt”

具体的my.ini文件和newpass.txt文件要改成实际的位置
命令执行后界面没有变化执行下一步。

在这里插入图片描述

按Ctrl+C终止运行,并重新启动Windows服务
在这里插入图片描述
关注我,学习更多的数据库知识
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老苏畅谈运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值