我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
当前回答
这是phpmyadmin中的一个错误。启动mysql
sudo mysql -p
然后执行如下命令:
SET GLOBAL validate_password.policy = 0;
现在您可以更改密码了。如果你喜欢,你可以在它之后重置它:
SET GLOBAL validate_password.policy = MEDIUM;
(您可以使用低,中或高)
然后执行exit关闭mysql。
这里找到了解决方案。
其他回答
步骤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';
请设置满足7条MySql验证规则的密码
例如:- d_VX>N(“xn_BrD2y
让验证标准更简单一点可以解决这个问题
SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;
但建议使用强密码是正确的解决方案
因为你的密码。你可以在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文档。
此错误消息与表中存储的密码无关。如果键入(在SQL控制台上),也会出现这种情况
“选择密码(“123456789”)”
或者,如果
“select密码(’A123456789’)”
或者,如果
“select a ! 123456789’密码()”
如果你输入
“选择密码(A a123456789 !)”
那么它就会起作用。只需使用大+小字母,特殊字符和数字创建您的密码。
您可以在my.cnf中禁用这些检查,但这样您就会有安全风险!
在[mysqld]中添加:
validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0
最好的选择是通过你的密码策略,并设置相应的密码。您可以通过运行以下命令检查现有的密码验证插件系统变量的值
mysql> SHOW VARIABLES LIKE 'validate_password%';
通过操作系统变量来减少安全策略从来都不是一个好做法。
您可以从官方文档中阅读关于每个变量及其用例的详细信息,参考链接MySQL 5.6 MySQL 5.7 MySQL 8.0