Windows解决Mysql错误1862:your password has expired
2018-05-10| 程成| 1755| 0| MySQL

当我和往常一样登录 Mysql 时,报了如下一段错误信息:“Your password has expired. To log in you must change it using a client that supports expired passwords.”。中文的意思是:“您的密码已过期。 要登录,您必须使用支持过期密码的客户端进行更改。”


原因:Mysql采用了密码过期策略,默认是90天过期。


从MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略。



解决方法:


一、修改配置文件


打开mysql配置文件mysql.ini,在[mysqld]模块添加:


default_password_lifetime=0



image.png


0代表永不过期、可以根据自己需要设置过期天数,如30、90。



二、使用 CMD 修改


1. 管理员登陆系统,停止 Mysql 服务或者结束 Mysqld-nt 进程

2. 进入命令行,来到 Mysql 的安装目录。假设安装目录为 d:/mysql/ , CMD 进入命令行

3. 运行 d:/mysql/bin/mysqld-nt --skip-grant-tables 启动 Mysql,关闭权限的检查(跳过密码校验)

4.然后进入mysql界面,输入myql -uroot,然后更改密码:


SET PASSWORD = PASSWORD('root');


5. 重新启动mysql服务,net stop mysql 接着net start mysql,然后mysql -u root -p 输入密码即可登录

这个验证成功,mysql运行重新正常



注:如果 CMD 报错:“mysql不是内部或外部命令”,可以参考这篇文章。《Windows 解决 Mysql 不是内部或者外部命令》


通过以上方法,解决 Windows 下 “your password has expired”的 Mysql 报错1862问题。





×
作者:程成
QQ:492245711