Mysql1819_解决 MySQL 错误 - ERROR 1819 (HY000)

MySQL 5.7 为了增加系统安全性, 加入了 validate_password plugin, 可以自定 MySQL 使用者帐号密码的强度, 当建立 MySQL 帐号或者修改密码时, 密码强度不符合要求, 会出现以下错误:

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

解决方法是设定一组比较复杂的密码, 以符合 MySQL 的要求, 如果要检视目前的密码要求, 或者修改这个限制, 需要登入 MySQL:

$ mysql -u roor -p

登入后执行以下指令可以检视密码的长度要求:

SHOW VARIABLES LIKE 'validate_password%';

+--------------------------------------+--------+

| Variable_name | Value |

+--------------------------------------+--------+

| validate_password_check_user_name | OFF |

| 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.01 sec)

1

2

3

4

5

6

7

8

9

10

11

12

13

SHOWVARIABLESLIKE'validate_password%';

+--------------------------------------+--------+

|Variable_name|Value|

+--------------------------------------+--------+

|validate_password_check_user_name|OFF|

|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|

+--------------------------------------+--------+

7rowsinset(0.01sec)

可以看到密码长度 (validate_password_length) 要求 8 个字符, 而密码强度 (validate_password_policy) 要求默认是 MEDIUM.

设定密码强度的 validate_password_policy, 分别有以下选项:

0 或 Low: 只会测试密码长度.

1 或 MEDIUM: 密码必需包括英文字母, 数字及特别字符.

2 或 STRONG: 密码必需包括英文字母, 数字及特别字符, 另外密码不能与字典档的字词匹配.

要求改这个限制, 可以修改 MySQL 的环境变量, 例如我将密码长度改为 6 位, 而密码强度改为 LOW, 可以执行以下指令:

set global validate_password_length=6;

Query OK, 0 rows affected (0.02 sec)

SET GLOBAL validate_password_policy=LOW;

Query OK, 0 rows affected (0.01 sec)

1

2

3

4

5

setglobalvalidate_password_length=6;

QueryOK,0rowsaffected(0.02sec)

SETGLOBALvalidate_password_policy=LOW;

QueryOK,0rowsaffected(0.01sec)

上面的修改会立即生效, 但下次启动 MySQL 后便会失效, 要下次启动 MySQL 仍然生效, 需要开启 my.cnf 设定:

$ sudo vi /etc/my.cnf

在 [mysqld] 段落加入 validate_password_length 及 validate_password_policy 的设定, 改成这样:

[mysqld]

validate_password_length=6

validate_password_policy=LOW

1

2

3

[mysqld]

validate_password_length=6

validate_password_policy=LOW

储存盘案后, 下次启动 MySQL 便会使用新定义的密码规则。

你可能感兴趣的内容:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值