您的密码不符合当前的政策要求

Ngu*_*yen 98 mysql passwords

我想用mysql在mysql中创建新用户:

create user 'demo'@'localhost' identified by 'password';
Run Code Online (Sandbox Code Playgroud)

但这是错误的."您的密码不符合当前的政策要求".我尝试了很多密码,但它不起作用.那么我该如何解决这个问题呢?

小智 152

因为你的密码.您可以使用in 来查看密码验证配置指标__CODE__,__CODE__也可以将密码策略级别设置为较低,例如:

SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)

您可以观看此视频:ERROR 1819(HY000):您的密码不符合当前的政策要求 - Mysql(Youtube)

  • 你应该引用官方的[MySQL文档](https://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html),而不是YouTube视频,这是出于上帝的缘故. (23认同)
  • 使用以下命令将'password'用作开发机器的密码:`SET GLOBAL validate_password_policy = 0;` (19认同)
  • `SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.number_count = 0;`uPDATED !! (4认同)
  • 而是`SET GLOBAL validate_password.policy = 0;` (3认同)
  • 这很有帮助,因为它实际上向我展示了**为什么**我的 30 个字符长密码是“弱”(没有特殊字符)。我能够删除特殊字符要求并将最小长度从 8 增加到 20。 (2认同)
  • ‘SET GLOBAL’状态只能在root用户下工作。如果您使用另一个管理员用户执行,它可能会导致您失败并显示成功提示。 (2认同)

ken*_*yut 56

注意:这可能不是一个安全的解决方案.但是,如果您正在开发测试环境,只需要快速修复,甚至不关心安全设置.这是一个快速的解决方案.

当我运行"mysql_secure_installation"并将密码安全级别修改为"中"时,同样的问题发生在我身上.

我通过运行以下操作来绕过错误:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;
Run Code Online (Sandbox Code Playgroud)

如有必要,请确保重新安装插件"validate_password".

  • 谢谢发帖.快速而肮脏的修复.就像@kennyut所说:**确保你重新安装插件"validate_password"** (9认同)
  • 可怕的解决方案.您应该将级别降低到适合您的级别,而不是删除整个设施. (2认同)

sin*_*ngh 36

如果您不关心密码策略是什么.您可以通过发出以下mysql命令将其设置为LOW:

mysql> SET GLOBAL validate_password_policy=LOW;
Run Code Online (Sandbox Code Playgroud)

  • 应该是“SET GLOBAL validate_password.policy=LOW;” (22认同)
  • 对于 MySQL 8,该属性已从“validate_password_policy”更改为“validate_password.policy”。对于较低版本,它仍然是“validate_password_policy” (5认同)

Jav*_*ick 20

对于 MySQL 8,您可以使用以下脚本:

SET GLOBAL validate_password.LENGTH = 4;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = 0;
ALTER USER 'user'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)


小智 16

运行命令后sudo mysql_secure_installation.

  1. 运行sudo mysql进入mysql提示符.
  2. 运行此命令SELECT user,authentication_string,plugin,host FROM mysql.user;以检查用户root是否具有插件auth_socket.
  3. 然后在运行uninstall plugin validate_password;之前运行以删除权限ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';确保将密码更改为强密码.

注意:请查看此链接https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04获取更多帮助


Phi*_*lip 13

对于MySQL 8*

SET GLOBAL validate_password.policy=LOW

参考链接解释政策 - 点击这里


小智 13

SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)

mysql> SET GLOBAL validate_password.length = 6;
mysql> SET GLOBAL validate_password.number_count = 0;
mysql> SET GLOBAL validate_password.policy=LOW;
SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)


dur*_*tra 7

如果您尝试设置空白密码。然后在MySQL客户端中运行以下查询:

SET GLOBAL validate_password.check_user_name = No;
SET GLOBAL validate_password.dictionary_file = '';
SET GLOBAL validate_password.length = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.special_char_count = 0;
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的

    SHOW VARIABLES LIKE 'validate_password%';

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 0     |
| validate_password.mixed_case_count   | 0     |
| validate_password.number_count       | 0     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 0     |
+--------------------------------------+-------+
Run Code Online (Sandbox Code Playgroud)

然后您可以使用以下查询更新您的空白密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Run Code Online (Sandbox Code Playgroud)


小智 6

第 1 步:检查您的默认身份验证插件

SHOW VARIABLES LIKE 'default_authentication_plugin';
Run Code Online (Sandbox Code Playgroud)

第 2 步:了解您的密码验证要求

SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)

第 3 步:使用正确的密码要求设置您的用户

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';
Run Code Online (Sandbox Code Playgroud)


小智 6

您必须将MySQL密码策略更改为LOW。

以root身份登录

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

变更政策

SET GLOBAL validate_password_policy=LOW;
Run Code Online (Sandbox Code Playgroud)

要么

SET GLOBAL validate_password_policy=0;
Run Code Online (Sandbox Code Playgroud)

出口

exit
Run Code Online (Sandbox Code Playgroud)

重启MySQL服务

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

您必须将MySQL密码策略更改为Low = 0 / Medium = 1 / High = 2。

SET GLOBAL validate_password_policy=0;
SET GLOBAL validate_password_policy=1;    
SET GLOBAL validate_password_policy=2;
Run Code Online (Sandbox Code Playgroud)


Har*_*ini 5

我认为将“ validate_password_policy”设置为“低”或卸载“验证密码插件”不是正确的选择。您绝不能损害数据库的安全性(除非您不在乎)。我想知道为什么当您只需选择一个好的密码时,人们甚至会建议这些选项。

为了克服这个问题,我在mysql中执行了以下命令:@JNevill建议显示类似SHOW VARIABLES'validate_password%'的命令。我的“ validate_password_policy”连同其他设置都设置为“中”。这是其执行的屏幕截图:验证密码策略

结果不言自明。对于有效的密码(当“密码策略”设置为“中”时):

  • 密码长度至少为8个字符
  • 混合大小写为1(小写至少1个字母,大写至少1个字母)
  • 数为1
  • 最小特殊字符数为1

因此,必须遵守有效密码。上述规则的有效密码示例如下:

  • 学生123 @
  • NINZAcoder $ 100
  • demoPass#00

您可以选择符合政策的任意组合。

对于其他“ validate_password_policy”,您可以简单地查看不同选项的值并相应地选择您的密码(我没有尝试过“ HIGH”)。

  • 政策没有解释。所以你只是猜测它是什么。就我而言,我正在生成一组随机字符,无论它有多疯狂“它不符合要求” (3认同)
  • 对于顶级密码策略而言,它非常强大。 (2认同)
  • 我尝试安装 phpmyadmin。我将策略设置为中等,并且我的密码满足策略(我刚刚检查了三次)。它仍然抛出同样的错误。即使它应该自己生成一个随机的(“如果留空”)。 (2认同)