今天打开navicat,使用root@localhost登录,提示密码过期,选择命令行登录,输入密码,可以正常登录,但查询表:
SELECT * FROM MYSQL.USER;
报错如下:
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
可是明明可以用密码登录,参考文档后,需要重新设置密码;
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
重新设置后,可以正常查询,且Navicat可以使用新密码正常登录;
进入后,查看mysql.user表,发现passwor_expired字段,root@loacalhost为N,其他用户为Y,这就是用户密码过期的问题,修改如下:
其他用户可以正常登录,至此密码过期问题解决