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就可以了