似乎我可能无意中在MySQL 5.7中加载了密码验证插件。这个插件似乎强制所有密码都符合某些规则。
我想关闭它。
我已尝试按照建议的here更改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
我想以某种方式卸载插件或中性。
答案 0 :(得分:390)
以下是删除验证密码插件的操作:
mysql -h localhost -u root -p
uninstall plugin validate_password;
我不建议将此解决方案用于生产系统。我用了 此解决方案仅限于本地mysql实例。
答案 1 :(得分:32)
根据Sharfi的回答,编辑/etc/my.cnf文件并添加这一行:
validate_password_policy=LOW
应根据OP的要求充分中性验证。您可能希望在此更改后重新启动mysqld。根据您的操作系统,它看起来像:
sudo service mysqld restart
validate_password_policy取值0,1或2或单词LOW,MEDIUM和STRONG对应于这些数字。默认值为MEDIUM(1),要求密码至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符,并且总密码长度至少为8个字符。我在这里建议更改为LOW然后只检查长度,如果没有通过其他参数更改,则检查长度为8.如果你想缩短长度限制,你也可以添加validate_password_length在my.cnf文件中。
有关级别和详细信息的详细信息,请参阅the mysql doc。
对于MySQL 8,该属性已从" validate_password_policy"更改为to" validate_password.policy"。有关最新信息,请参阅更新的mysql doc。
答案 2 :(得分:22)
我正在使用MySQL v 8.0.12,并且disable密码验证组件的命令是:
UNINSTALL COMPONENT 'file://component_validate_password';
要重新安装,命令是:
INSTALL COMPONENT 'file://component_validate_password';
如果您只想change密码验证插件的政策:
SET GLOBAL validate_password.policy = 0; // For LOW
SET GLOBAL validate_password.policy = 1; // For MEDIUM
SET GLOBAL validate_password.policy = 2; // For HIGH
答案 3 :(得分:6)
要在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
答案 4 :(得分:3)
您可以在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
取消注释并更改要更改的属性的值。
答案 5 :(得分:2)
如果您想要例外,您可以应用以下" hack"。它要求对mysql.plugin
系统表具有DELETE
和INSERT
权限的用户。
uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Bland安全免责声明:考虑一下,为什么要使密码更短或更简单,也许可以考虑将其替换为更复杂的密码。但是,我理解"它的上午3点,只需要工作"时刻,只要确保你没有建立一个黑客系统,以免你被黑客入侵
答案 6 :(得分:2)
进一步回答ktbos:
我修改了mysqld.cnf文件,mysql无法启动。 事实证明我正在修改错误的文件!
因此,请确保您修改的文件包含[mysqld_safe]和[mysqld]等段标记。根据后者,我按照建议做了并添加了一行:
validate_password_policy=LOW
这完全解决了我在密码中不需要特殊字符的问题。
答案 7 :(得分:1)
回复您的问题:如何关闭mysql密码验证?
简短回答:您可以降低复杂性。
以 root 身份登录 Mysql 客户端。
user
继续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;
答案 8 :(得分:0)
我在Mysql的Ubuntu 18.04上遇到问题。当我需要创建新用户时,该策略始终很高。
对于未来来调查的同事,我想出了禁用的方法被设置为低。
以root用户身份登录mysql服务器
mysql -h localhost -u root -p
设置新的验证类型
SET GLOBAL validate_password_policy=0; //For Low
重启mysql
sudo service mysql restart
答案 9 :(得分:0)
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
答案 10 :(得分:0)
卸载:
uninstall plugin validate_password;
show plugins;
不会显示已卸载的插件
安装:
install plugin validate_password SONAME 'validate_password.so';
已通过配置禁用:
[mysqld]
validate_password = OFF
只有通过安装,才能通过配置禁用插件。
答案 11 :(得分:0)
在某些安装中,只有重置根密码后才能执行此命令。在执行此命令之前,您无法重置root密码。经典接球22。
其他响应者未提及的一种解决方案是通过mysql配置暂时禁用该插件。在任何slice
的{{1}}部分中,添加:
my.cnf
,然后重新启动服务器。更改密码,并将值设置回0,然后再次重新启动。
答案 12 :(得分:0)
有关参考资料和将来,请在https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html
处阅读文档。然后,您应该编辑mysqld.cnf
文件,例如:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
然后,在[mysqld]部分中添加以下内容:
plugin-load-add=validate_password.so
validate_password_policy=LOW
基本上,如果您编辑默认值,它将类似于:
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
plugin-load-add=validate_password.so
validate_password_policy=LOW
然后,您可以重新启动:
systemctl restart mysql
如果忘记了plugin-load-add=validate_password.so
部分,则重启时会出错。
享受!
答案 13 :(得分:-1)
对于mysql 8.0.7,转到您的mysql目录,然后使用:
sudo bin/mysql_secure_installation
配置密码选项。