我需要在Mac上的新MySQL中创建一个带有六个字符密码的用户。我知道5.7中的最低设置只允许8个字符。有没有办法解决这个问题?
我输入CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'
它输出错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
您正在使用password validation plugin。默认情况下,它只允许8个字符和更长的密码。因为它无法检查哈希的值,所以@RiggsFolly对于预先哈希密码是正确的是正确的。
但是,如果你想要change the options,你需要设置validate_password_length
系统变量的值。您可以在配置文件中执行此操作或:
SET GLOBAL validate_password_length=6;
首先,您使用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
默认情况下,MySQL 5.7+具有密码验证系统。如果您不想严格遵守策略并需要分配自己的策略,则只需禁用密码验证并重新启动mysqld进程。
编辑my.cnf文件:
vi /etc/my.cnf
在[mysql]中
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
请在下面的评论框中告诉我您的评论。
我相信你可以通过使用这样的预先哈希密码来解决它: -
CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
但这确实意味着你需要正确地散列special
才会真正设置一个密码,然后你可以使用纯文本版本。
通过运行以下命令可以完全禁用看似过于严格的密码“插件”:uninstall plugin validate_password
如果你需要它,你可以通过:INSTALL PLUGIN validate_password SONAME 'validate_password.so'
重新打开它
(可选)您可以将其禁用,设置密码并重新启用它:
uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
进一步阅读:
检查当前密码策略规则
SHOW VARIABLES LIKE 'validate_password%';
现在设置这些变量的新值:
SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = 'LOW'
这可能有所帮助:
GRANT ALL ON wordpress.* TO 'user'@'localhost' IDENTIFIED WITH mysql_native_password AS'yourpassword';