似乎我无意中在MySQL 5.7中加载了密码验证插件。这个插件似乎强制所有密码遵守某些规则。
我想把这个关了。
我已经尝试按照这里的建议更改validate_password_length变量,但没有用。
mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
我想要么卸载插件或中性它以某种方式。
根据Sharfi的回答,编辑/etc/my.cnf文件并添加这一行:
validate_password_policy=LOW
这应该足以中和op所要求的验证。在这个更改之后,您可能需要重新启动mysqld。根据你的操作系统,它看起来像这样:
sudo service mysqld restart
validate_password_policy takes either values 0, 1, or 2 or words LOW, MEDIUM, and STRONG which correspond to those numbers. The default is MEDIUM (1) which requires passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters. Changing to LOW as I suggest here then only will check for length, which if it hasn't been changed through other parameters will check for a length of 8. If you wanted to shorten that length limit too, you could also add validate_password_length in to the my.cnf file.
有关级别和细节的更多信息,请参阅mysql文档。
对于MySQL 8,属性已经从“validate_password_policy”更改为“validate_password.policy”。请参阅更新后的mysql文档获取最新信息。
在MySQL 8中,情况有所不同(但公平地说,技术上是更好的)。我放弃了在本地MacOS安装中删除密码的尝试。所以,我意识到如果你不能打败他们,那就加入他们!
以下是我的快速而肮脏的解决方案:
通过HomeBrew安装MySQL8(默认为不安全安装)
编辑我的~/。zshrc(因为这是我使用的shell。其他人可能使用.bash_profile或其他)
纳米~ / . zshrc
增加2个别名行
别名mysql='mysql -uroot'
别名mysqladmin='mysqladmin -uroot'
推动变化
源~ / . zshrc
所以现在,不用担心使用-u或-p标志,它们会自动用于mysql或mysqladmin命令。
供参考,如果你有密码,这也应该工作。您只需在别名中包含-pPASSWORD即可。
(例如:alias mysql='mysql -uroot -pPASSWORD')
此外,如果您使用任何其他mysql命令,您可以添加额外的别名行。
供参考:不要在生产服务器上执行这些步骤。
我愿意相信这是不言而喻的……但是,以防你不知道。