Windows 服务器系统中安装 MySQL5.7.24 和 PHP7.3 后,使用 IIS 搭建网站测试 PHP 程序语言能否连接 MySQL 数据库时,提示“PHP Warning: mysqli_connect(): (HY000/1862): Your password has expired. To log in you must change it using a client that supports expired passwords.”错误。
PHP Warning 错误
PHP Warning: mysqli_connect(): (HY000/1862): Your password has expired. To log in you must change it using a client that supports expired passwords. in D:\www\mysql.php on line 5
PHP Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\ww\mysql.php on line 8
查找原因:使用MySQL命令分析 php7.3连接不上MySQL数据库的原因Win+R 打开运行窗口——》 cmd ——》输入命令切换至 MySQL 的 bin 目录(如:C:\Program Files\MySQL Server\bin)
输入命令 mysql -u root -p ——》数据库密码——》成功通过 cmd 连接 mysql数据库服务器
输入“禁用密码过期”命令:ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;
执行命令后,报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
查找结果分析:这是 mysql 初始化密码常见报错问题。因为MySQL数据库用户的密码设置过于简单,数据库在用户登录后会提示重置密码,并且不接受简单的密码。所以,提示需要重置密码。
网站测试PHP程序语言能否连接MySQL数据库时提示您的密码已过期的解决方法
通过上面的查找原因,需要执行重置用户密码。解决方法:使用命令修改用户密码即可。
执行命令:修改用户密码
mysql> alter user 'root'@'localhost' identified by 'you_pass_word';
mysql> set password = password("you_pass_word");
以上两种命令,任选其一执行即可实现重新设置一次密码。
执行“刷新权限”命令
mysql> flush privileges;
PS:mysql 新设置用户或更改密码后需用flush privileges;刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。