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
直接回车即可;
mysql8.0 账号密码过期无法登录,重置密码--windows_第1张图片

三、再新开一个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库修改密码即可
mysql8.0 账号密码过期无法登录,重置密码--windows_第2张图片

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

2.此时,打开navicat,将连接的密码设置为空,连接数据,连接成功。
进入到mysql库,新建查询
3.修改密码:
alter user ‘root’@’%’ IDENTIFIED BY ‘123456’;
修改成功
mysql8.0 账号密码过期无法登录,重置密码--windows_第3张图片

关于为什么不在置空的时候就直接设置新密码:
由下上图可以发现,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无法登录报错
mysql8.0 账号密码过期无法登录,重置密码--windows_第4张图片

通过cmd却可以登录
mysql8.0 账号密码过期无法登录,重置密码--windows_第5张图片
mysql8.0 账号密码过期无法登录,重置密码--windows_第6张图片

根据报错提示信息可知:
require_secure_transport = OFF 模式
此为默认设置,该模式下用户可以不通过ssl加密连接到数据库
require_secure_transport = ON 模式下
强制要求配置ssl
mysql8.0 账号密码过期无法登录,重置密码--windows_第7张图片

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

你可能感兴趣的:(数据库,mysql,数据库)