报(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘),通过重置MYSQL密码来解决

事情起源

前天晚上好好的,第二天打开电脑正要开始写垃圾代码时,发现项目启动报错了,看了一下,发现是数据库连不上,我一脸懵逼,只能到万能的互联网上面查询解决方法,最后经过从不同的资料中汲取知识,最终成功解决了问题。这篇文章用来记录本人解决问题过程中出现的问题并进行解决的过程,方便后续再出现相同问题时可以不费吹灰之力就能解决掉。

说明

  • 本人mysql版本为mysql-8.0.27-winx64,其他的版本不保证一定能成功
  • 本文解决的方式是:重置MYSQL的root账户对应的密码

操作

一、打开一个cmd窗口,关闭mysql服务

在这里插入图片描述

二、使用管理员权限打开cmd窗口,跳过权限验证

首先进入mysql安装包的bin目录下面,然后执行如下命令来

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

在这里插入图片描述

三、新建第三个cmd窗口(管理员权限打开),无密码进入mysql,并清空密码

看到Enter passowrd直接爱搭不理,回车就可以连接Mysql。连接Mysql之后,使用update user set authentication_string='' where user='root';命令将mysql数据库的root用户对应密码清空。

安装好Mysql的时候,Mysql就自带了一些数据库,如下图所示,这些数据库用来存储Mysql的用户信息以及其他配置信息。我们这一步的目的就是将mysql数据库的root用户对应密码清空,这样下次使用root账户连接数据库时就可以不用密码。

在这里插入图片描述
在这里插入图片描述

四、关闭前面的cmd窗口(管理员权限打开),无密码进入mysql,并重置密码

在这里插入图片描述

前面一切顺利,当我要修改密码的时候,又给我报错了,说我密码太简单,开玩笑,“12345678”还简单,算了,只能修改mysql的规则了

在这里插入图片描述
使用show variables like "%validate%";打开配置信息看看

在这里插入图片描述
发现policy是中等验证的,意味着对密码的要求比较严格

在这里插入图片描述
那用如下命令就把policy改成低级的吧

set global validate_password.policy=0;

在这里插入图片描述
再次执行show variables like "%validate%"; 发现修改完成了

在这里插入图片描述
总算可以修改密码了,开搞

在这里插入图片描述
啊这,又报错,我心态崩了啊。最后在查了其他资料之后,发现了新的修改方法

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';

泪目,终于修改完成了

在这里插入图片描述
修改完成之后,终于可以正常登录了,又可以开心地写垃圾代码了(*^▽^*)

  • 29
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hello Dam

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

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

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

打赏作者

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

抵扣说明:

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

余额充值