MySQL8.0设置简单密码的方法

问题

在安装MySQL8.0时,修改临时密码,因密码过于简单(如:123456),不符合MySQL密码规范,会触发一个报错信息:

mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

解决

  1. 先修改一个合乎规则的密码,例如Root_1234
  2. 查询vilidate_password变量。
  3. 修改里面的lenghpolicy的值。lengh表示密码的最低长度,policy为安全等级,想设置简单密码则需要设置成LOW
    mysql> alter user 'root'@'localhost' identified by 'Root_r1234';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password.check_user_name    | ON     |
    | validate_password.dictionary_file    |        |
    | validate_password.length             | 8      |
    | validate_password.mixed_case_count   | 1      |
    | validate_password.number_count       | 1      |
    | validate_password.policy             | MEDIUM |
    | validate_password.special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.00 sec)
    可以看到,当前的lengh=8, policy=MIDIUM,修改一下他们的值,就可以设置简单密码了。
    mysql> set global validate_password.length=6;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> set global validate_password.policy=LOW;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> alter user 'root'@'localhost' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    

MySQL5.7的解决方案

直接设置validate_password_policy & validate_password_length

1、解决办法调整MySQL密码验证规则,修改 policy 和 length 的值。

2、MySQL 5.7 进行如下设置,即可解决问题:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MySQL8.0设置简单密码的方法
https://qiil.github.io/2023/02/23/MySQL8-0设置简单密码/
作者
QSY
发布于
2023年2月23日
许可协议