似乎我无意中在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

我想要么卸载插件或中性它以某种方式。


当前回答

在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命令,您可以添加额外的别名行。

供参考:不要在生产服务器上执行这些步骤。 我愿意相信这是不言而喻的……但是,以防你不知道。

其他回答

在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命令,您可以添加额外的别名行。

供参考:不要在生产服务器上执行这些步骤。 我愿意相信这是不言而喻的……但是,以防你不知道。

如果你想做例外,你可以应用下面的“hack”。它要求mysql用户具有DELETE和INSERT权限。插件系统表。

uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

平淡的安全免责声明:考虑一下为什么要让你的密码更短或更简单,也许可以考虑用一个更复杂的密码来代替它。然而,我理解“现在是凌晨3点,需要工作”的时刻,只是要确保你没有建立一个黑客系统,以免你自己被黑客攻击

下面是我删除验证密码插件的方法:

以root用户登录mysql服务器mysql -h localhost -u root -p 执行如下sql命令:uninstall plugin validate_password; 如果最后一行不行(mysql新版本),你应该执行卸载COMPONENT 'file://component_validate_password';

我不建议将这种解决方案用于生产系统。我使用 此解决方案仅用于本地mysql实例的开发目的。

卸载:

mysql> uninstall plugin validate_password;

show plugins不会显示卸载的插件;

安装:

mysql> install plugin validate_password SONAME 'validate_password.so';

配置禁用:

[mysqld]
validate_password = OFF

只有安装了插件,才能通过配置禁用该插件。

为了禁用mariadb-10.1.24 (Fedora 24)中的密码检查,我必须注释掉/etc/my.cnf.d/cracklib_password_check.cnf文件中的一行:

;plugin-load-add=cracklib_password_check.so

然后重新启动mariadb服务:

systemctl restart mariadb.service