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

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

但是它会返回一个错误:

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

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


当前回答

您必须将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;

其他回答

对我来说,在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。

这里找到了解决方案。

对于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;

MySQL 8*

SET GLOBAL validate_password.policy=LOW

参考链接解释政策-点击这里

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

mysql> SET GLOBAL validate_password.length = 4;
mysql> SET GLOBAL validate_password.policy=LOW;