我想在MySQL中创建一个新用户,语法如下:

create user 'demo'@'localhost' identified by 'password';

但是它会返回一个错误:

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

我试过很多密码,但都没用。我该如何解决这个问题?


当前回答

mysql> SET GLOBAL validate_password.policy = 0;

其他回答

请设置满足7条MySql验证规则的密码

例如:- d_VX>N(“xn_BrD2y

让验证标准更简单一点可以解决这个问题

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

但建议使用强密码是正确的解决方案

我有同样的问题,答案就在你面前,记得当你在安装mysql的时候运行脚本

sudo mysql_secure_installation

您可以在某个地方选择想要的密码类型

密码验证策略有三种级别:

LOW长度>= 8 中等长度>= 8,数字,混合大小写,特殊字符 STRONG长度>= 8,数字,混合大小写,特殊字符和字典文件

请输入0 = LOW, 1 = MEDIUM, 2 = STRONG:

你必须给相同的策略设置密码

下面是一些密码示例: 对于类型0:abcdabcd 类型1:abcd1234 类型2:ancd@1234

在我的例子中,当有一个错误的引用时,错误就出现了:

GRANT所有database_name。* ' user1 ' @'8.10.12.2';(用户名周围的单引号错误)

vs

GRANT所有database_name。* 'user1'@'8.10.12.2';(正确)

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

SHOW VARIABLES LIKE 'default_authentication_plugin';

步骤2:veryfing您的密码验证要求

SHOW VARIABLES LIKE 'validate_password%';

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

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';

在我看来,设置“validate_password_policy”为“low”或卸载“验证密码插件”是不正确的事情。永远不要牺牲数据库的安全性(除非你真的不在乎)。我想知道为什么人们甚至建议这些选项,当你可以选择一个好的密码。

为了克服这个问题,我在mysql中执行了以下命令:根据@JNevill的建议,SHOW VARIABLES LIKE 'validate_password%'。我的“validate_password_policy”被设置为Medium,还有其他一些东西。以下是其执行的截图:验证密码策略

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

密码长度至少为8个字符 混合大小写计数为1(至少1个小写字母和1个大写字母) Number count是1 最小特殊字符数为1

因此,有效的密码必须遵守策略。以上规则的有效密码示例可能是:

Student123@ NINZAcoder 100美元 点demoPass #

您可以选择任何组合,只要它满足策略。

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

https://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html