13.7.3.3 INSTALL PLUGIN 语句

INSTALL PLUGIN plugin_name SONAME 'shared_library_name'

该语句安装服务器插件。它要求mysql.plugin系统 table 具有INSERT特权。

共享库必须位于插件目录(由plugin_dir系统变量命名的目录)中。该库必须位于插件目录本身中,而不是子目录中。默认情况下,plugin_dirpkglibdir配置变量命名的目录下的plugin目录,但是可以通过在服务器启动时设置plugin_dir的值来更改它。例如,在my.cnf文件中设置其值:

[mysqld]
plugin_dir=/path/to/plugin/directory

如果plugin_dir的值是相对路径名,则将其视为相对于 MySQL 基本目录(basedir系统变量的值)。

INSTALL PLUGIN加载并初始化插件代码,以使该插件可供使用。插件通过执行其初始化函数进行初始化,该初始化函数处理该插件使用前必须执行的所有设置。当服务器关闭时,它将为每个已加载的插件执行反初始化功能,以便该插件有机会执行任何最终清理。

INSTALL PLUGIN还通过在mysql.plugin系统 table 中添加指示插件名称和库文件名的行来注册插件。服务器启动时,服务器将加载并初始化mysql.plugin中列出的所有插件。这意味着一个插件只能用INSTALL PLUGIN来安装一次,而不是每次服务器启动时都安装一次。如果使用--skip-grant-tables选项启动服务器,则不会在启动时加载插件。

一个插件库可以包含多个插件。对于每个要安装的组件,请使用单独的INSTALL PLUGIN语句。每个语句命名一个不同的插件,但是它们都指定相同的库名。

INSTALL PLUGIN使服务器读取选项(my.cnf)文件,就像在服务器启动期间一样。这使插件可以从这些文件中获取所有相关选项。甚至可以在加载插件之前将插件选项添加到选项文件中(如果使用了loose前缀)。也可以卸载插件,编辑my.cnf,然后再次安装该插件。以这种方式重新启动插件可以使其具有新的选项值,而无需重新启动服务器。

有关控制服务器启动时单个插件加载的选项,请参见第 5.5.1 节“安装和卸载插件”。如果在给定--skip-grant-tables选项(告诉服务器不要读取系统 table)时需要为单个服务器启动加载插件,请使用--plugin-load选项。参见第 5.1.6 节“服务器命令选项”

要删除插件,请使用UNINSTALL PLUGIN语句。

有关插件加载的其他信息,请参见第 5.5.1 节“安装和卸载插件”

要查看安装了哪些插件,请使用SHOW PLUGINS语句或查询INFORMATION_SCHEMA PLUGINStable。

如果重新编译插件库并需要重新安装,则可以使用以下两种方法之一:

首页