插件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.h
client_plugin.h
- 在
sql
目录中,sql_plugin.h
并sql_plugin.cc
包含内部插件实现。sql_acl.cc
是服务器使用身份验证插件的位置。插件开发人员无需咨询这些文件。他们可能对那些想了解更多有关服务器如何处理插件的人感兴趣。 - 在
sql-common
目录中,client_plugin.h
实现C API客户端插件功能,并client.c
实现客户端身份验证支持。插件开发人员无需咨询这些文件。他们可能对那些想了解更多有关服务器如何处理插件的人感兴趣。