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

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

但是它会返回一个错误:

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

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


当前回答

因为你的密码。你可以在MySQL客户端中使用以下查询查看密码验证配置指标:

SHOW VARIABLES LIKE 'validate_password%';

输出应该是这样的:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

然后可以将密码策略级别设置低一些,例如:

SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.number_count = 0;

查看MySQL文档。

其他回答

问题是您的密码不符合密码验证规则。您可以简单地按照以下步骤来解决您的问题。

您可以通过键入下面的代码简单地看到密码验证配置矩阵。

mysql-> SHOW VARIABLES LIKE 'validate_password%';

然后在你的矩阵中,你可以找到下面的变量与相应的值,在那里,你必须检查validate_password_length, validate_password_number_count和validate_password_policy。

检查这些变量的值。确保validate_password_length不大于6。您可以使用下面的代码将其设置为6。

SET GLOBAL validate_password_length = 6;

之后,您需要将validate_password_number_count设置为0。通过使用下面的代码来实现。

SET GLOBAL validate_password_number_count = 0;

最后,您必须将validate_password_policy设置为low。将其设置为中或高不会允许您使用不太安全的密码。通过下面的代码将其设置为低。

SET GLOBAL validate_password_policy=LOW;

如果你不关心密码策略。你可以通过下面的mysql命令将其设置为LOW:

mysql> SET GLOBAL validate_password.length = 4;
mysql> SET GLOBAL validate_password.policy=LOW;
SHOW VARIABLES LIKE 'validate_password%';

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%';

对我来说,在ubuntu新安装的mysqld上不起作用,必须添加这个:到/etc/mysql/mysql.conf.d/mysqld.cnf,否则服务器不会启动(猜测插件没有在正确的时间加载,当我只是添加它而没有plugin-load-add指令时)

plugin-load-add=validate_password.so
validate_password_policy=LOW
validate_password_length=8
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_special_char_count=0

这是phpmyadmin中的一个错误。启动mysql

sudo mysql -p

然后执行如下命令:

SET GLOBAL validate_password.policy = 0;

现在您可以更改密码了。如果你喜欢,你可以在它之后重置它:

SET GLOBAL validate_password.policy = MEDIUM;

(您可以使用低,中或高)

然后执行exit关闭mysql。

这里找到了解决方案。