目录
问题说明
今天在查看MySQL密码策略的时候发生了一个很奇怪的现象,它不返回查询结果,每一次查询都会提示”Empty set, 1 warning (0.00 sec)“,弄了很久很久知道了这个是因为并没有安装 validate_password 插件。
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set, 1 warning (0.00 sec)
mysql> Show Variables Like 'validate_password.%';
Empty set, 1 warning (0.00 sec)
mysql> Show global Variables Like 'validate_password.%';
Empty set, 1 warning (0.00 sec)
mysql> Show global Variables Like 'validate_pass%';
Empty set, 1 warning (0.00 sec)
环境问题复现
笔者这边使用的是 8.0.29版本,其不具备密码策略查看的插件,具体代码如下所示。
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.29 |
+-----------+
1 row in set (0.00 sec)
解决方案
安装validate_password 插件
根据下面的SQL语句就可以将插件成功的安装到MySQL中,然后就可以查询到密码策略啦!
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.21 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, 1 warning (0.00 sec)