我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
我想在MySQL中创建一个新用户,语法如下:
create user 'demo'@'localhost' identified by 'password';
但是它会返回一个错误:
您的密码不符合当前策略要求。
我试过很多密码,但都没用。我该如何解决这个问题?
当前回答
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%';
其他回答
此错误消息与表中存储的密码无关。如果键入(在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> SET GLOBAL validate_password.policy = 0;
最好的选择是通过你的密码策略,并设置相应的密码。您可以通过运行以下命令检查现有的密码验证插件系统变量的值
mysql> SHOW VARIABLES LIKE 'validate_password%';
通过操作系统变量来减少安全策略从来都不是一个好做法。
您可以从官方文档中阅读关于每个变量及其用例的详细信息,参考链接MySQL 5.6 MySQL 5.7 MySQL 8.0
问题是您的密码不符合密码验证规则。您可以简单地按照以下步骤来解决您的问题。
您可以通过键入下面的代码简单地看到密码验证配置矩阵。
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 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;