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

use*_*723 17 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
Run Code Online (Sandbox Code Playgroud)

Ale*_*ber 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      |
+--------------------------------------+--------+
Run Code Online (Sandbox Code Playgroud)

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

# 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;
Run Code Online (Sandbox Code Playgroud)

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

# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

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


mik*_*n32 8

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

但是,如果要更改选项,则需要设置validate_password_length系统变量的值.您可以在配置文件中执行此操作或:

SET GLOBAL validate_password_length=6;
Run Code Online (Sandbox Code Playgroud)

  • 对于通过brew安装的mac,这似乎不适用于mysql 5.7.11.即使在更改选项后,我也会收到相同的错误. (3认同)

Mur*_*ala 5

默认情况下,MySQL 5.7+具有密码验证系统.如果您不想严格遵守策略并需要分配自己的策略,则只需禁用密码验证并重新启动mysqld进程.

编辑my.cnf文件:

vi /etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

[mysqld]中

validate-password=off
Run Code Online (Sandbox Code Playgroud)

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

sudo service mysqld restart
or
systemctl restart mysqld
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令更改Root密码,并按照不会为Root密码引发异常的步骤进行操作.

mysql_secure_installation
or
/usr/bin/mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)

如果你正在做安装第一次,想知道的临时密码,然后使用以下方法来找到第一次密码:

 grep 'temporary password' /var/log/mysqld.log
Run Code Online (Sandbox Code Playgroud)

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