You must reset your password using ALTER USER statement before executing this statement

发布于 2023-01-17 15:02:40 字数 1917 浏览 156 评论 0

新安装数据以后,在我们成功登陆数据库之后,原以为可以操作数据库了,但是当我们随机运行一个 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_nameValue 的参数,其中我们会发现有个数字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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

帝王念

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文