与之前版本略有不一样,mysql8配置密码校验是使用安装组件形式配置的,而防暴力破解跟之前是一样的是插件安装方式。
1.开启密码校验方式
先登陆mysql,输入命令:show variables like 'validate_password%';查看是否已存在密码校验。
若没有,则安装组件,执行命令:INSTALL COMPONENT 'file://component_validate_password';
然后再执行:INSTALL COMPONENT 'file://component_validate_password';查看是否已启用;
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 |
+--------------------------------------+--------+
6 rows in set (0.00 sec)
可通过执行命令:set global validate_password.length = 10;修改密码校验长度,其他配置项修改也都可以这样修改。
各个属性参数的意义参考:https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html
2.防暴力破解,即配置连接控制
这个我知道的有两种方式来配置,先看看mysql是否已经存在这个插件及配置了,输入命令:
show variables like 'connection_control%';
第一种方式,在mysql中安装插件:
登陆mysql,执行两个命令:
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
(注:如果报错,Plugin 'CONNECTION_CONTROL' is not loaded,可能是配置文件权限不够,需要修改mysql配置文件my.cnf权限:chmod 644 my.cnf, 修改后重启mysql服务再执行上述两行命令。)
再执行命令:show variables like 'connection_control%';查看配置项,
修改配置项命令:set global 配置项 = 值;
这里不多介绍各个属性的含义,想知道可以看这里:https://dev.mysql.com/doc/refman/8.0/en/connection-control-variables.html
第二种方式,配置文件中启用:
在mysql配置文件my.cnf中添加如下配置项:
[mysqld]
# 加载插件
plugin-load-add=connection_control.so
# 防止运行过程中被篡改,即没有这个插件就会报错
connection-control=FORCE_PLUS_PERMANENT
connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT