当我和往常一样登录 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
0代表永不过期、可以根据自己需要设置过期天数,如30、90。
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问题。