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

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


当前回答

在某些安装中,除非重置了根密码,否则无法执行此命令。执行该命令前,不能重置root用户密码。经典的第二十二条军规。

其他响应者没有提到的一个解决方案是通过mysql配置暂时禁用插件。在任何my.cnf,在[mysqld]部分,添加:

skip-validate_password=1

并重新启动服务器。请修改密码并重新设置为0,然后重新启动系统。

其他回答

进一步回答ktbos的问题:

我修改了mysqld.cnf文件,mysql无法启动。 原来我修改了错误的文件!

因此,请确保您修改的文件包含像[mysqld_safe]和[mysqld]这样的段标记。在后者下面,我按照建议加了一行:

validate_password_policy=LOW

这很好地解决了我在密码中不需要特殊字符的问题。

在某些安装中,除非重置了根密码,否则无法执行此命令。执行该命令前,不能重置root用户密码。经典的第二十二条军规。

其他响应者没有提到的一个解决方案是通过mysql配置暂时禁用插件。在任何my.cnf,在[mysqld]部分,添加:

skip-validate_password=1

并重新启动服务器。请修改密码并重新设置为0,然后重新启动系统。

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

设置密码选项。

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'localhost'  WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

不需要停止/启动mysql