Windows和Linux环境下忘记MySQL密码的解决办法

一、Linux下MySQL忘记root密码

情景再现

忘记MySQL连接密码

image-20240325223127236

1、停止MySQL服务

[root@localhost ~]# systemctl stop mysqld

2、安全模式启动MySQL服务,并暂时跳过权限表验证以及禁用网络连接

[root@localhost ~]# mysqld_safe --skip-grant-tables --skip-networking &
  • mysqld_safe 是一个脚本,用于以安全模式启动MySQL服务器。这种方式启动MySQL时,它会检查一些基本条件,并在出现问题时尝试修复。
  • --skip-grant-tables 参数跳过了权限表的检查,这意味着在启动时MySQL不验证任何用户凭据,任何人都可以无需密码连接到MySQL服务器。
  • --skip-networking 参数则禁用了MySQL监听任何网络接口,只允许本地Unix套接字连接。这样做是为了增加安全性,防止在跳过权限检查时外部用户通过网络访问数据库。

3、更新mysql.user表中root用户的密码。

update mysql.user set password=PASSWORD('123456') where user='root' and host='localhost';

4、刷新MySQL的权限缓存

flush privileges;

image-20240325230005375


二、Windows下MySQL忘记密码(8.0以上版本)

情景再现

忘记MySQL连接密码

image-20240411102515545

1、通过管理员方式打开cmd,cmd程序路径一般在C:\Windows\System32

image-20240411112025520

2、进入到mysql安装路径中的bin文件,停止mysql服务

net stop mysql

忘记bin文件路径可以跳过win+r输入services.msc找到MySQL右击属性查看,最好提前复制下来

image-20240411112356128


image-20240411112632312

3、跳过权限表验证

mysqld --skip-grant-tables在8.0及以上版本不使用了

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

image-20240411114511557

4、再用同样的方法以管理员权限进入mysql安装路径中的bin文件

必须是另外一个cmd窗口哦

上一个跳过权限表验证的窗口也不要关闭

image-20240411114838292

5、更新root用户密码

update user set authentication_string='' where user='root';
alter user 'root'@'localhost' identified by '123';
flush privileges;
alter user 'root'@'localhost' identified by '123';
flush privileges;

image-20240411122940676

6、重新启动MySQL登录

net start mysql

image-20240411123306773

7、使用新密码登录

#不建议-p参数后直接加密码,这里为了展示方便
mysql -uroot -p123

image-20240411123409127

  • 32
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值