如何在MySQL 5.7中创建六个字符的密码

时间:2016-01-21 00:25:52

标签: mysql database mysql-5.7

我需要在Mac上的新MySQL中创建一个带有六个字符密码的用户。我知道5.7中的最低设置只允许8个字符。有没有办法解决这个问题?

我输入CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'

输出错误

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

7 个答案:

答案 0 :(得分:38)

首先使用mysql -u root -p登录,然后按以下方式检查当前的政策规则:

# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 5      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

然后您可以随意更改上述任何变量:

# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;

最后,您可以使用更简单的密码创建数据库和用户访问它:

# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;

之后,您可以使用密码mysql -u user1 -p test1

使用pass1登录

答案 1 :(得分:8)

您正在使用password validation plugin。默认情况下,它只允许8个字符和更长的密码。因为它无法检查哈希的值,所以@RiggsFolly对于预先哈希密码是正确的是正确的。

但是,如果您想要change the options,则需要设置validate_password_length系统变量的值。您可以在配置文件中执行此操作:

SET GLOBAL validate_password_length=6;

答案 2 :(得分:5)

MySQL 5.7 + 默认情况下拥有密码验证系统。如果您不想严格遵守该政策并需要自行分配,则只需禁用密码验证并重新启动 mysqld 流程。

修改 my.cnf 文件:

vi /etc/my.cnf
[mysqld]

中的

validate-password=off

保存文件,然后重新启动过程

sudo service mysqld restart
or
systemctl restart mysqld

然后使用以下内容更改Root密码,并按照其赢得的步骤为root密码抛出异常。

mysql_secure_installation
or
/usr/bin/mysql_secure_installation

如果您正在安装 第一次并想知道临时密码,请使用以下内容查找第一次密码

 grep 'temporary password' /var/log/mysqld.log

请在下面的评论框中告诉我您的评论。

答案 3 :(得分:3)

我相信你可以通过使用这样的预先散列密码来解决它: -

CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
       AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';

但这确实意味着你需要正确地散列special才能实际设置一个密码,然后你可以使用纯文本版本。

答案 4 :(得分:3)

通过运行以下命令,可以完全禁用看似过于严格的密码“插件”: CognitoCachingCredentialsProvider credProvider = new CognitoCachingCredentialsProvider( getApplicationContext(), "YOUR_COGNITO_POOL_ID", Regions.EU_WEST_2 ); AmazonS3 s3 = new AmazonS3Client(credProvider); s3.setEndpoint("s3.eu-west-2.amazonaws.com"); TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext()); TransferObserver transferObserver = transferUtility.upload( "ascentserver", "TEST.png", fileToUpload ); . . .

如果您再次需要它,可以通过以下方式重新打开: uninstall plugin validate_password

您可以选择停用它,设置密码并重新启用它:

INSTALL PLUGIN validate_password SONAME 'validate_password.so'

进一步阅读:

答案 5 :(得分:2)

检查当前密码策略规则
SHOW VARIABLES LIKE 'validate_password%';

现在设置这些变量的新值:

SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = 'LOW'

答案 6 :(得分:-2)

这可能会有所帮助:

GRANT ALL ON wordpress.* TO 'user'@'localhost' IDENTIFIED WITH mysql_native_password AS'yourpassword';