如何关闭mysql密码验证?

时间:2016-03-30 06:17:54

标签: mysql

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

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

14 个答案:

答案 0 :(得分:390)

以下是删除验证密码插件的操作:

  1. 以root mysql -h localhost -u root -p
  2. 身份登录mysql服务器
  3. 运行以下sql命令:uninstall plugin validate_password;
  4.   

    我不建议将此解决方案用于生产系统。我用了   此解决方案仅限于本地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系统表具有DELETEINSERT权限的用户。

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

配置密码选项。