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