mysql8.0 账号密码过期无法登录,重置密码--windows

一、停止运行MySQL服务
方法1.在cmd命令行中输入: net stop mysql ; 这样就可以将MySQL服务停止。
方法2.在任务管理器里搜索“service”,进入找到 MySQL服务,停止服务即可。
方法3.win+r快捷键,输入services.msc回车,进入服务列表,找到Mysql服务。

二、以管理员身份打开cmd,并切换至MySQL的安装目录下的bin目录;开启跳过密码验证登录的MySQL服务:
1.输入:mysqld --console --skip-grant-tables --shared-memory
直接回车即可;
在这里插入图片描述

三、再新开一个cmd(同样以管理员身份打开),并切换至MySQL的安装目录下的bin目录;开始免密登录,切换至mysql库,然后查看用户信息,再将root用户密码设置为空:
1.输入:mysql -u root -p
回车后会让我们输入密码,因为第二步是开启跳过密码验证的MySQL服务;所以不用输密码,直接回车就行;

2.切换至mysql库:use mysql;

3.查看用户信息:select host, user, authentication_string, plugin from mysql.user;

4.将root用户密码设置为空:update user set authentication_string=’’ where user=‘root’;

5.上一小步已经将root用户的密码(即authentication_string)设置为空;这时,可以再查看哈用户信息:select host, user, authentication_string, plugin from mysql.user;
就可以看到root所对应的authentication_string为空了。

6.更新设置完密码为空后,刷新权限。输入:flush privileges;

四、 保留以-console --skip-grant-tables --shared-memory 启动的MySQL服务的窗口!关闭那个修改账号为空的窗口;在重新开一个cmd窗口,进入到bin目录(以-console --skip-grant-tables --shared-memory启动的方式无法通过alter修改密码,但是密码置空后,新开窗口却可以,待研究)
1.输入:mysql -u root -p
回车后会让我们输入密码,因为第二步是开启跳过密码验证的MySQL服务;所以不用输密码,直接回车就行;
有些博主,此时已经可以正常登录,若能登录,执行下面的步骤:进入mysql库修改密码即可
在这里插入图片描述

但是我本地验证发现报错
猜测原因:
mysql的密码验证或者由于我的root账号的host为%

2.此时,打开navicat,将连接的密码设置为空,连接数据,连接成功。
进入到mysql库,新建查询
3.修改密码:
alter user ‘root’@’%’ IDENTIFIED BY ‘123456’;
修改成功
在这里插入图片描述

关于为什么不在置空的时候就直接设置新密码:
由下上图可以发现,user表中的密码authentication_string是密文,如果直接通过
update user set authentication_string=’’ where user=‘root’;来设置,密码为明文,实际登录无法匹配

五、关闭以-console --skip-grant-tables --shared-memory 启动的MySQL服务的窗口以及其他cmd窗口;在服务列表重新启动mysql,或者新建一个cmd,通过net start mysql来重启服务

一般情况来说,使用新密码直接登录即可正常使用

但是我本地却发现通过navicat无法登录报错
在这里插入图片描述

通过cmd却可以登录
在这里插入图片描述
在这里插入图片描述

根据报错提示信息可知:
require_secure_transport = OFF 模式
此为默认设置,该模式下用户可以不通过ssl加密连接到数据库
require_secure_transport = ON 模式下
强制要求配置ssl
在这里插入图片描述

修改该配置即可,使用navicat连接正常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值