You must reset your password using ALTER USER statement before executing this statement
新安装数据以后,在我们成功登陆数据库之后,原以为可以操作数据库了,但是当我们随机运行一个 sql 语句时,mysql 命令窗口却提示:
ERROR 1820 (HY000): You must reset your password using ALTER USE statement before executing this statement.
错误翻译:在执行该语句之前,你必须通过 alter user 来修改密码
看到这样的错误,我们第一时间会通过 alter user ‘用户名’@‘loaclhost’ identified by ‘修改的密码’;
该语句来修改密码,但是执行该语句之后,又发现一个新的错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
错误翻译:您的密码太过于简单.
看到这里相信在座的各位心里面应该都快要崩溃了,感觉自己像是被玩耍了一下,但不要着急,心急吃不了热豆腐,咱们一步一步来将它们解决掉。
首先我们重新执行更改用户密码语句
mysql>alter user user() identified by '';
// 这里注意,填写密码的时候满足8位并且尽量是混合密码(英文、下划线、数字)
这样的话会发现我们的密码修改成功了,咦刚才明明不行的,为什么现在却可以了,实际上,如果刚才报错的话是因为咱们设置的密码过于简单,而导致触发了 Mysql 的一个策略,不过虽然解决了,但是相信各位肯定有很多疑惑,不过不要急接着往下看:
mysql> show varialables like 'validate_password%'; // 执行该语句
可以看到图片中的 Variable_name
和 Value
的参数,其中我们会发现有个数字8和Medium(中等)的值,接着在看它们对应的参数为 validate_password_length
(密码长度)和 validate_password_policy
(密码策略)。
看到我相信在座各位的疑惑应该都解决了吧,为什么简单密码不行,为什么六位数的密码不行,原因问题出现在这里,那么应该怎么样修改它们呢?
mysql> set global validate_password_policy=low; //将密码级别改为弱
mysql> set global validate_password_length=6; //将密码长度改为6
/*
执行完之后,我们可以将刚才设置的混合密码
改为自己想要的数字密码或英文密码了
*/
mysql> alter user '用户名'@'localhost' identified by '123456'; //改密码方式一
mysql> alter user USER() identified by '123456'; //改密码方式二
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论