Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL 5.7中创建六个字符的密码_Mysql_Database_Mysql 5.7 - Fatal编程技术网

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

如何在MySQL 5.7中创建六个字符的密码,mysql,database,mysql-5.7,Mysql,Database,Mysql 5.7,我需要在mac上的新MySQL中创建一个具有六个字符密码的用户。我知道5.7中的最低设置只允许8个字符。有没有办法解决这个问题 我输入创建用户'newsier'@'localhost',由'special'标识。 它输出错误 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 我相信您可以通过使用如下预哈希密码来绕过它:- CREATE USER 'newsier'@'localh

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

我输入
创建用户'newsier'@'localhost',由'special'标识。

它输出错误

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

我相信您可以通过使用如下预哈希密码来绕过它:-

CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
       AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
但这确实意味着您需要正确地散列
special
,然后才能实际设置密码,您可以使用的纯文本版本。

您正在使用的。默认情况下,它只允许8个字符和更长的密码。因为它不能检查散列值,@RiggsFolly正确地认为对密码进行预散列将起作用

但是,如果需要,则需要设置
validate\u password\u 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过程

编辑我的.cnf文件:

vi /etc/my.cnf
[mysqld]

validate-password=off
保存文件,然后重新启动进程

sudo service mysqld restart
or
systemctl restart mysqld
然后使用以下步骤更改根密码,并遵循不会引发根密码异常的步骤

mysql_secure_installation
or
/usr/bin/mysql_secure_installation
如果您是第一次进行安装,并且想知道临时密码,请使用以下方法查找第一次密码

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

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

通过运行以下命令,可以完全禁用似乎过于严格的密码“插件”:
卸载插件验证密码

如果您再次需要,可以通过以下方式重新打开:
INSTALL PLUGIN validate\u password SONAME'validate\u password.so'

或者,您可以禁用它、设置密码并重新启用它:

uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
进一步阅读:

    • 这可能有助于:


      GRANT ALL ON wordpress.*给'user'@'localhost',以mysql_native_密码作为'yourpassword'标识

      通过检查当前密码策略规则

      SHOW VARIABLES LIKE 'validate_password%';
      
      现在设置这些变量的新值:

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

      这似乎是个奇怪的问题。如果您不想运行密码验证,请不要加载插件。我不加载插件。因为它在5.7中显示为默认值,所以允许用户使用他们想要的@如何卸载插件?
      显示插件
      将向您显示已安装的插件,如果您想卸载其中一个插件,则命令为
      卸载插件PLUGIN\u name
      这在mysql 5.7.11中似乎不适用于通过brew安装的mac。即使更改了选项,我也会遇到同样的错误。这是正确的答案。错误“error 1819(HY000):您的密码不符合当前的策略要求”可能是由于
      混合字符计数
      特殊字符计数
      造成的。无论我在哪里读到它说,改变传递长度,但它是关于混合的情况。谢谢