关于mysql密码过期策略导致无法执行语句问题解决方案:
1.今天忽然间mysql远程无法登录,去服务器查看 登录正常,但是无法执行语句,提示报这样的错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
提示说:您必须在执行此语句之前使用ALTER USER语句重置密码
很是奇怪,后来去查找资料发现官方提示:
Password Expiration Policy
To expire an account password manually, use the ALTER USER
statement:
是说
要手动使帐户密码失效,请使用以下 ALTER USER
语句:
一:
扫描二维码关注公众号,回复:
10909888 查看本文章
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE;
然后复制执行后发现依然有问题,提示需要ALTER USER
语句,
最后发现原来是版本问题,
二:
SET PASSWORD = PASSWORD('root');
这种受限的操作模式允许使用 SET
语句,在SET PASSWORD
必须使用MySQL 5.7.6之前,该语句非常有用,如果 必须使用该语句,ALTER USER
并且帐户密码的哈希格式要求 old_passwords
将其值设置为与默认值不同的值。
总结:如果是5.7.6之前 使用二方式,如果是5.7.6后使用一解决
后面附上参考资料有兴趣可以去深究:https://dev.mysql.com/doc/refman/5.7/en/password-management.html