6.4.3.1 密码验证插件安装

本节介绍如何安装validate_password密码验证插件。有关安装插件的一般信息,请参见第 5.5.1 节“安装和卸载插件”

Note

如果您使用MySQL Yum 存储库MySQL SLESRepositoryOracle 提供的 RPM 软件包安装了 MySQL 5.7,则在首次启动 MySQL Server 后默认启用validate_password

要由服务器使用,插件库文件必须位于 MySQL 插件目录(由plugin_dir系统变量命名的目录)中。如有必要,通过在服务器启动时设置plugin_dir的值来配置插件目录位置。

插件库文件的基本名称为validate_password。每个平台的文件名后缀都不同(例如,对于 Unix 和类 Unix 系统,为.so,对于 Windows 为.dll)。

要在服务器启动时加载插件,请使用--plugin-load-add选项命名包含该插件的库文件。使用这种插件加载方法,每次服务器启动时都必须给出该选项。例如,将这些行放在服务器my.cnf文件中,并根据需要调整平台的.so后缀:

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

修改my.cnf后,重新启动服务器以使新设置生效。

或者,要在运行时加载插件,请使用以下语句,并根据需要调整平台的.so后缀:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

INSTALL PLUGIN加载插件,并将其注册在mysql.plugins系统 table 中,以使该插件在以后每次正常服务器启动时都加载,而无需--plugin-load-add

要验证插件安装,请检查INFORMATION_SCHEMA.PLUGINStable 或使用SHOW PLUGINS语句(请参见第 5.5.2 节“获取服务器插件信息”)。例如:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'validate%';
+-------------------+---------------+
| PLUGIN_NAME       | PLUGIN_STATUS |
+-------------------+---------------+
| validate_password | ACTIVE        |
+-------------------+---------------+

如果插件未能初始化,请检查服务器错误日志以获取诊断消息。

如果插件先前已在INSTALL PLUGIN中注册或在--plugin-load-add中加载,则可以在服务器启动时使用--validate-password选项来控制插件的激活。例如,要在启动时加载插件并防止在运行时将其删除,请使用以下选项:

[mysqld]
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

如果希望阻止没有密码验证插件的服务器运行,请使用--validate-password且值为FORCEFORCE_PLUS_PERMANENT来强制服务器在插件未成功初始化的情况下失败。