我想用mysql在mysql中创建新用户:
create user 'demo'@'localhost' identified by 'password';
Run Code Online (Sandbox Code Playgroud)
但这是错误的."您的密码不符合当前的政策要求".我尝试了很多密码,但它不起作用.那么我该如何解决这个问题呢?
小智 152
因为你的密码.您可以使用in 来查看密码验证配置指标__CODE__
,__CODE__
也可以将密码策略级别设置为较低,例如:
SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)
您可以观看此视频:ERROR 1819(HY000):您的密码不符合当前的政策要求 - Mysql(Youtube)
ken*_*yut 56
注意:这可能不是一个安全的解决方案.但是,如果您正在开发测试环境,只需要快速修复,甚至不关心安全设置.这是一个快速的解决方案.
当我运行"mysql_secure_installation"并将密码安全级别修改为"中"时,同样的问题发生在我身上.
我通过运行以下操作来绕过错误:
mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;
Run Code Online (Sandbox Code Playgroud)
如有必要,请确保重新安装插件"validate_password".
sin*_*ngh 36
如果您不关心密码策略是什么.您可以通过发出以下mysql命令将其设置为LOW:
mysql> SET GLOBAL validate_password_policy=LOW;
Run Code Online (Sandbox Code Playgroud)
Jav*_*ick 20
对于 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;
Run Code Online (Sandbox Code Playgroud)
小智 16
运行命令后sudo mysql_secure_installation
.
sudo mysql
进入mysql提示符.SELECT user,authentication_string,plugin,host FROM mysql.user;
以检查用户root是否具有插件auth_socket.uninstall plugin validate_password;
之前运行以删除权限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获取更多帮助
小智 13
SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)
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%';
Run Code Online (Sandbox Code Playgroud)
如果您尝试设置空白密码。然后在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;
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
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 |
+--------------------------------------+-------+
Run Code Online (Sandbox Code Playgroud)
然后您可以使用以下查询更新您的空白密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Run Code Online (Sandbox Code Playgroud)
小智 6
第 1 步:检查您的默认身份验证插件
SHOW VARIABLES LIKE 'default_authentication_plugin';
Run Code Online (Sandbox Code Playgroud)
第 2 步:了解您的密码验证要求
SHOW VARIABLES LIKE 'validate_password%';
Run Code Online (Sandbox Code Playgroud)
第 3 步:使用正确的密码要求设置您的用户
CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';
Run Code Online (Sandbox Code Playgroud)
小智 6
您必须将MySQL密码策略更改为LOW。
以root身份登录
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
变更政策
SET GLOBAL validate_password_policy=LOW;
Run Code Online (Sandbox Code Playgroud)
要么
SET GLOBAL validate_password_policy=0;
Run Code Online (Sandbox Code Playgroud)
出口
exit
Run Code Online (Sandbox Code Playgroud)
重启MySQL服务
sudo service mysqld restart
Run Code Online (Sandbox Code Playgroud)
您必须将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;
Run Code Online (Sandbox Code Playgroud)
我认为将“ validate_password_policy”设置为“低”或卸载“验证密码插件”不是正确的选择。您绝不能损害数据库的安全性(除非您不在乎)。我想知道为什么当您只需选择一个好的密码时,人们甚至会建议这些选项。
为了克服这个问题,我在mysql中执行了以下命令:@JNevill建议显示类似SHOW VARIABLES'validate_password%'的命令。我的“ validate_password_policy”连同其他设置都设置为“中”。这是其执行的屏幕截图:验证密码策略
结果不言自明。对于有效的密码(当“密码策略”设置为“中”时):
因此,必须遵守有效密码。上述规则的有效密码示例如下:
您可以选择符合政策的任意组合。
对于其他“ validate_password_policy”,您可以简单地查看不同选项的值并相应地选择您的密码(我没有尝试过“ HIGH”)。