似乎我无意中在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配置文件中进行配置 打开/etc/my.cnf文件 在这个文件中,所有正在配置密码策略的行都要做如下注释

#validate-password=FORCE_PLUS_PERMANENT
#validate_password_length=10
#validate_password_mixed_case_count=1
#validate_password_number_count=1
#validate_password_policy=MEDIUM

取消注释并更改要更改的属性的值。

其他回答

为了禁用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

对于mysql 8.0.7,进入mysql目录,然后使用:

sudo bin/mysql_secure_installation

设置密码选项。

你可以在mysql配置文件中进行配置 打开/etc/my.cnf文件 在这个文件中,所有正在配置密码策略的行都要做如下注释

#validate-password=FORCE_PLUS_PERMANENT
#validate_password_length=10
#validate_password_mixed_case_count=1
#validate_password_number_count=1
#validate_password_policy=MEDIUM

取消注释并更改要更改的属性的值。

回复你的问题:我如何关闭mysql密码验证?

简单的回答:您可以降低复杂性。

以root用户登录Mysql客户端。

set global validate_password.policy = LOW;
set global validate_password.length = 2;
set global validate_password.mixed_case_count = 0;
set global validate_password.number_count = 0;
set global validate_password.special_char_count = 0;

继续创建用户…

卸载:

mysql> uninstall plugin validate_password;

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

安装:

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

配置禁用:

[mysqld]
validate_password = OFF

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