我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
当前回答
如果你想设置一个空白密码。然后在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;
输出应该是这样的:
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 |
+--------------------------------------+-------+
然后,您可以使用以下查询更新您的空白密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
其他回答
如果你不关心密码策略。你可以通过下面的mysql命令将其设置为LOW:
mysql> SET GLOBAL validate_password.length = 4;
mysql> SET GLOBAL validate_password.policy=LOW;
因为你的密码。你可以在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_secure_installation”并将密码安全级别修改为“中等”时,同样的问题发生在我身上。
我通过运行以下程序绕过了这个错误:
mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;
如果需要,请确保重新安装插件“validate_password”。
在我的例子中,当有一个错误的引用时,错误就出现了:
GRANT所有database_name。* ' user1 ' @'8.10.12.2';(用户名周围的单引号错误)
vs
GRANT所有database_name。* 'user1'@'8.10.12.2';(正确)
您必须将MySQL密码策略更改为LOW。
以root用户登录
mysql -u root -p
改变政策
SET GLOBAL validate_password_policy=LOW;
or
SET GLOBAL validate_password_policy=0;
exit
exit
重启MySQL服务
sudo service mysql restart
请将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;