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

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

但是它会返回一个错误:

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

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


当前回答

如果mysql托管在aws上,只需卸载插件。从根用户火下面

UNINSTALL PLUGIN validate_password;

其他回答

步骤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';

执行sudo mysql_secure_installation. sh命令后。

2 .执行sudo mysql命令,进入“mysql”界面。 运行SELECT user,authentication_string,plugin,host FROM mysql.user;检查root用户是否有插件auth_socket。 然后运行卸载插件validate_password;在运行之前删除特权 this ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

注意:查看这个链接https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04以获得更多帮助

此错误消息与表中存储的密码无关。如果键入(在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托管在aws上,只需卸载插件。从根用户火下面

UNINSTALL PLUGIN 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