vlambda博客
学习文章列表

说一款 MySQL 密码插件

MySQL 5.7 之后提供了一种强制设置安全性密码的插件,有了这款插件,你再也不能设置 123 当密码了。


1. 通过配置文件安装


编辑 MySQL 配置文件,添加如下内容:


[mysqld]plugin-load-add=validate_password.so

重启 MySQL

$ service mysqld restart

创建或者修改用户密码,如果密码设置的比较简单,如:123, 123456 等,会提示密码不符合安全规范,如下:

(root@localhost) [(none)]> create user 'david'@'101.32.19.%' identified by '123';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(root@localhost) [(none)]>

那密码应该如何设置呢?可以通过如下命令查看:

(root@localhost) [(none)]> show variables like 'validate%';+--------------------------------------+--------+| 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.01 sec)
(root@localhost) [(none)]>

默认规则是:密码长度不能小于 8 位,至少包含一个大写字母,数字和特殊字符。重新创建用户,就可以了。

(root@localhost) [(none)]> create user 'david'@'101.32.19.%' identified by 'laoliu_A_123';Query OK, 0 rows affected (0.01 sec)

当然了,还有一些其他设置,如,设置的密码不能在指定的字典里,密码的策略也可以调整等。更多详细的设置,大家可以参考https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html


2. 在线安装


将插件信息配置在配置文件里面固然好,但是如果是一个已在生产环境跑的 MySQL 呢,修改配置文件,再重启可能就合适了。MySQL 也提供了在线安装的方式,具体如下:

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

查看是否安装成功,可以执行以下命令:

(root@localhost) [(none)]> show plugins;........| mysqlx | ACTIVE | DAEMON | NULL | GPL || validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL |+---------------------------------+----------+--------------------+----------------------+---------+46 rows in set (0.00 sec)

如果能找到对应的插件,则表示安装成功。


3. 卸载密码插件


(root@localhost) [(none)]> UNINSTALL PLUGIN validate_password;


至此,MySQL 的密码插件说完了,下一篇说一下 MySQL 单机多实例,多版本安装,敬请期待......


大家加油!!!


下面是广告时间,关注 “老刘说技术” 获取更多教程