Windows下mysql忘记root密码的解决方法

前序

Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’出现 Error 1045 。表明输入的用户名或密码错误被拒绝访问了,也可能是的账号不允许从远程登录,只能在localhost本地登录数据库。

尝试本地登录数据库时还发现把mysql密码给忘了 栓Q

解决方法

重置密码,刷新权限

步骤

1.首先将MySQL的服务关闭

打开命令行cmd输入

net stop mysql57

即可关闭MySQL服务。

或者,找到服务,找到MYSQL57(我电脑装的是mysql5.7,所以这里是MYSQL56)然后关闭

2.跳过密码授权登录

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

第一次跳过授权时报错,定位不到安装目录下的data文件夹。注意,这时候不要自己手贱新建一个空的data文件夹(这样后续的步骤就会出现找不到mysql.user表),或者拷贝别人的data文件夹,后续 操作会出现很多潜在问题:比如遇到的执行show variables like %charact%; 语句时,报错表不存在!

安装mysql5.7+版本时,若发现因根目录下,缺少data文件夹的情况,打开cmd命令窗口,并且进入到MySQL安装目录中的bin目录,输入以下命令

mysqld --initialize-insecure --user=mysql

执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空

初始化后就可以再跳过授权了

3.再继续以管理员身份打开一个cmd窗口,进行重置密码

依次执行以下命令:

  • mysql
  • use mysql
  • update user set  password=password('新密码') where user='root' and host='localhost';
  • flush privileges
  • quit
  • mysql -u root -p
  • 输入新密码

 注意: Mysql版本如果在5.7及以下时,上面第三步语句应为:

update user set  authentication_string=password('新密码') where user='root' and host='localhost';

原因:Mysql版本在5.7及以下时,mysql数据库下面已经没有password这个字段了,password字段改成了authentication_string ,但思路是不变的,即通过语句直接在mysql数据库里修改密码字段

4.使用新密码重新登录mysql验证

  • mysql -u root -p
  • 输入新密码

5. 使用Navicat可视化工具连接Mysql 

 参考文章:

MySQL数据库忘记密码怎么办?教你一招

Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’

解决MySQL5.7安装后没有data文件夹无法登录的问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值