如何关闭mysql密码验证?

Ale*_*yan 143 mysql

似乎我可能无意中在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
Run Code Online (Sandbox Code Playgroud)

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

Ray*_*ter 412

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

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

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

  • 注意:在MySQL 8.0.4中,validate_password插件重新实现为validate_password组件.而不是上面的#2查询,运行:`UNINSTALL COMPONENT'file:// component_validate_password';` (23认同)
  • 要重新启用它,请使用以下命令:`INSTALL PLUGIN validate_password SONAME'validate_password.so';` (16认同)
  • 要删除插件,您需要通过`grep'password'/var/log/mysqld.log |至少设置一次安全密码.tail -1`然后`/ usr/bin/mysql_secure_installation`.执行此操作后,您可以运行上面的srayhunter命令,然后运行`mysqladmin -u root -p'oldpassword'password newpass`来使用您想要的任何密码. (7认同)
  • `mysql> SET GLOBAL validate_password_policy = 0;` (7认同)
  • 该插件在当前的MariaDB中称为"cracklib_password_check". (2认同)

ktb*_*bos 33

根据Sharfi的回答,编辑/etc/my.cnf文件并添加以下一行:

validate_password_policy=LOW
Run Code Online (Sandbox Code Playgroud)

根据OP的要求,这应该足够中性验证.您可能希望在此更改后重新启动mysqld.根据您的操作系统,它看起来像:

sudo service mysqld restart
Run Code Online (Sandbox Code Playgroud)

validate_password_policy取值0,1或2或单词LOW,MEDIUM和STRONG对应于这些数字.默认值为MEDIUM(1),要求密码至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符.我在这里建议更改为LOW然后只检查长度,如果没有通过其他参数更改它将检查长度为8.如果你想缩短长度限制,你也可以添加validate_password_length到my.cnf文件.

有关级别和详细信息的更多信息,请参阅mysql文档.


对于MySQL 8,该属性已从"validate_password_policy"更改为"validate_password.policy".有关最新信息,请参阅更新的mysql文档.

  • 如果您只需要临时更改,要允许设置单个密码,您可以使用`SET GLOBAL validate_password_policy = LOW;` (6认同)
  • 看起来变量名在最新的 MySQL 中发生了变化。@Amalgovinus,请尝试使用变量名称“validate_password.policy”,看看它是否适合您。如果是这样,我会更新我的答案。 (3认同)
  • mysql:未知变量“validate_password_policy=LOW” (2认同)

Aks*_*aur 29

我使用的是MySQL v 8.0.12,并且禁用密码验证组件的命令是:

UNINSTALL COMPONENT 'file://component_validate_password';
Run Code Online (Sandbox Code Playgroud)

要重新安装它,命令是:

INSTALL COMPONENT 'file://component_validate_password';
Run Code Online (Sandbox Code Playgroud)

如果您只想更改密码验证插件的策略:

SET GLOBAL validate_password.policy = 0;   // For LOW
SET GLOBAL validate_password.policy = 1;   // For MEDIUM
SET GLOBAL validate_password.policy = 2;   // For HIGH
Run Code Online (Sandbox Code Playgroud)


Kar*_*rma 7

回答你的问题:如何关闭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;
Run Code Online (Sandbox Code Playgroud)

与..一起处理create user ...


lav*_*lav 6

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

;plugin-load-add=cracklib_password_check.so
Run Code Online (Sandbox Code Playgroud)

然后重启mariadb服务:

systemctl restart mariadb.service
Run Code Online (Sandbox Code Playgroud)


Ant*_*zzi 5

卸载:

mysql> uninstall plugin validate_password;
Run Code Online (Sandbox Code Playgroud)

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

安装:

mysql> install plugin validate_password SONAME 'validate_password.so';
Run Code Online (Sandbox Code Playgroud)

通过配置禁用:

[mysqld]
validate_password = OFF
Run Code Online (Sandbox Code Playgroud)

仅在安装后才能通过配置禁用插件。