28.2.3 插件 API 组件
服务器插件实现包括几个组件。
SQL statements:
-
INSTALL PLUGIN在
mysql.plugin
table 中注册了插件并加载了插件代码。 -
UNINSTALL PLUGIN从
mysql.plugin
table 中注销插件并卸载插件代码。 -
全文索引创建的
WITH PARSER
子句将全文分析器插件与给定的FULLTEXT
索引相关联。 -
SHOW PLUGINS显示有关服务器插件的信息。
命令行选项和系统变量:
-
--plugin-load选项允许在服务器启动时加载插件。
-
plugin_dir系统变量指示必须安装所有插件的目录的位置。可以在服务器启动时使用--plugin_dir=dir_name选项指定此变量的值。 mysql_config --plugindir显示默认的插件目录路径名。
有关插件加载的其他信息,请参见第 5.5.1 节“安装和卸载插件”。
Plugin-related tables:
-
INFORMATION_SCHEMA.PLUGINStable 包含插件信息。
-
mysql.plugin
table 列出了与INSTALL PLUGIN一起安装且需要使用插件的每个插件。对于新的 MySQL 安装,此 table 是在安装过程中创建的。
Client 端插件的实现更为简单:
-
对于mysql_options() C API 函数,
MYSQL_DEFAULT_AUTH
和MYSQL_PLUGIN_DIR
选项使 Client 端程序可以加载身份验证插件。 -
有 C API 函数可用于 ManagementClient 端插件。
要检查 MySQL 如何实现插件,请在 MySQL 源代码发行版中查阅以下源文件:
-
在
include/mysql
目录中,plugin.h
公开了公共插件 API。任何想编写插件库的人都应检查该文件。plugin_xxx.h
文件提供了与特定类型的插件有关的其他信息。client_plugin.h
包含特定于 Client 端插件的信息。 -
在
sql
目录中,sql_plugin.h
和sql_plugin.cc
构成内部插件实现。sql_acl.cc
是服务器使用身份验证插件的位置。插件开发人员无需咨询这些文件。对于那些想进一步了解服务器如何处理插件的人来说,它们可能很有趣。 -
在
sql-common
目录中,client_plugin.h
实现 C APIClient 端插件功能,而client.c
实现 Client 端身份验证支持。插件开发人员无需咨询这些文件。对于那些想进一步了解服务器如何处理插件的人来说,它们可能很有趣。