window mysql5.7 密码过期问题解决

这里是window7 下的mysql5.7 和mysql5.6是有一些区别的
像密码修改,mysql早前的版本user表有password字段,5.7为authentication_string

这里写图片描述

首先找到my.ini 这个默认在C:\ProgramData\MySQL\MySQL Server 5.7 下
不是C:\Program Files\MySQL\MySQL Server 5.7下的my-default.ini
window7 下可以通过 我的电脑–>右键管理–弹出计算机管理–>服务–>找到mysql57 –>右键属性–>看到可执行文件路径(拉到最后可以看到)
或者 win+R,运行里输入services.msc打开服务,找到mysql57–> –>右键属性–>看到可执行文件路径(拉到最后可以看到)

这里写图片描述

一定是my.ini,我一开始找到Program Files下面的my-default.ini去了…

在my.ini, 最后加上 skip-grant-tables
这里写图片描述

找到 通过cmd 找到 C:\Program Files\MySQL\MySQL Server 5.7\bin
(主要是mysql.exe在这个命令目录下,如何path变量配置了可以不用
没配会出现 ‘mysql’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。)

输入命令:

mysql -uroot -p

出现:

Enter password:

在这里直接回车,不用输入密码。

修改密码(authentication_string)和时间(password_last_changed)
只修改密码是不行的,必须和时间一起修改,之前我就只修改密码结果还是不行
修改语句:
update mysql.user set authentication_string=password(‘root’),password_last_changed = NOW() where user=’root’;

这个语句查看一下是否已经改变
select host,user,authentication_string,password_last_changed from mysql.user;

刷新权限:

FLUSH PRIVILEGES;

然后退出,重新登录:

quit

最后把之前 my.ini 里的skip-grant-tables这句话去掉

重启mysql就可以了

猜你喜欢

转载自blog.csdn.net/u012903926/article/details/81287848