MySQL忘记密码的解决方案(重置密码)

问题描述

之前开发一个项目,在本地建了一个MySQL数据库,后来项目搁浅,MySQL数据库就一直躺在硬盘里。也不知道过了多久,现在需要回过头来继续开发项目,但是MySQL密码早就忘记了,尴尬⊙﹏⊙‖∣
好在MySQL服务和安装目录都还在,所以尝试着按照网上的教程来重置MySQL密码。

启动MySQL、并重置密码

MySQL通常是通过服务来启动,不过除了服务来启动,还可以通过命令行的方式来启动。

  1. 首先找到打开服务窗口,找到MySQL服务,双击查看服务详情。MySQL服务
  2. 通过服务详情,我们可以看到实际该服务的执行命令为D:\mysqlx64_5.6.16\bin\mysqld MySQL,即实际上服务是通过调用mysql命令行来启动MySQL服务的,其中所以我们可以手动在命令行窗口来通过执行mysqld命令来启动mysql。如下:
mysqld MySQL

可以经过一顿操作之后,发现通过上面的操作之后,MySQL进程并没有启动,真是大写的尴尬。
进程里并没有MySQL
后来通过一番排(bai)查(du)之后发现如果需要通过命令行来启动MySQL,则需要添加--console参数,即完整的命令应该是:

mysqld --console

通过上面的命令,可以成功启动MySQL,并且进程列表里也能找到mysqld的进程:
mysqld --console执行效果
进程列表里也能看到mysqld的进程

  1. 接下来算是比较关键的一步,就是通过跳过权限验证的参数来启动MySQL。
    在命令行窗口,按Ctrl + C结束上面的MySQL进程之后,另外添加skip-grant-tables参数,可以以跳过权限验证的方式启动MySQL。
mysqld --console --skip-grant-tables

此时我们可以看到MySQL正常启动:MySQL正常启动

  1. 通过上述方式启动MySQL后,我们再通过数据库连接工具,比如Navicat,连接本地的MySQL。由于MySQL启动时加了skip-grant-tables参数,此时我们可以输入任何的账号和密码登录MySQL。登录MySQL
  2. 修改MySQL中root的密码。
    MySQL中所有的用户信息都存在mysql.user表,我们可以通过修改该表的相关信息来达到修改密码的目的。
    mysql.user表
update mysql.user set password = password ('abc123') where user = 'root'; -- 其中abc123为新密码
flush PRIVILEGES; -- 刷新MySQL的系统权限相关表
  1. 执行完上述操作后,就可以通过正常方式重新启动MySQL,并用新密码进行登陆了。

写在最后

对于参数skip-grant-tables,除了可以在命令行的的方式添加,也可以通过修改MySQL配置文件my.ini的方式添加,在此不展开来讲。对于正式生产环境,一定要记得关闭该参数,切记!!!

扩展阅读:
https://blog.csdn.net/m0_58016522/article/details/121602138
https://blog.csdn.net/m0_58016522/article/details/121558131

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值