MySQL5.7简易密码设置

MySQL5.7简易密码设置

默认规范密码

在MySQL5.7中,新增了密码强度验证插件validate_password,这就导致相关的参数设置更为严格。
当我们设置密码的时候,该插件会检查设置的密码是否符合当前设置的强度规则,如果不满足则拒绝设置并报错。

1
2
3
4
5
6
## 不满足插件规则时错误信息
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
## 正常情况下,当我们设置了符合规范的密码之后,如果需要再次修改密码,可以使用
mysql> update user set authentication_string=password('Root_123456') where user='root';
## 刷新权限
mysql> flush privileges;

默认配置规则

在MySQL中,我们可以直接通过下面的语句查看当前规则配置信息。

1
2
## 查看MySQL5.7默认的密码校验配置。
mysql> SHOW VARIABLES LIKE 'validate_password%';

这里我们简单了解一下插件validate_password的规则配置。

参数 说明
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 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。默认为MEDIUM。
validate_password_special_char_count 密码至少要包含的特殊字符数。默认为1。

关于上面规则配置中的validate_password_policy参数中的等级强度,这里作进一步说明

  • 0 or LOW:只检查密码长度
  • 1 or MEDIUM:检查长度、数字、大小写、特殊字符
  • 2 or STRONG:检查长度、数字、大小写、特殊字符以及字典文件

设置简易密码

在实际使用中,我们可能需要设置简历密码,例如root等。这里我们可以通过修改规则配置或者禁用规则插件等方式来实现。

修改规则和密码

我们可以先修改配置规则,再修改成符合规则的密码。这里以最简四位密码root为例。

1
2
3
4
5
6
7
8
9
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count = 0;
mysql> set global validate_password_special_char_count = 0;

## 这里我们再次修改密码。以新建一个测试用户为例。
mysql> CREATE USER 'test001'@'%' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.02 sec)

禁用规则插件(不建议)

事实上,这个密码强度验证插件validate_password是可以直接在MySQL5.7中的配置中禁用的。
这里只需要在/etc/my.conf 中 的 [mysqld] 中增加如下的配置即可。

1
validate_password=OFF

参考资料

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 henrrywan

请我喝杯咖啡吧~

支付宝
微信