服务器插件实现包括几个组件。
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
有关插件加载的其他信息,请参阅 安装和卸载插件。
插件相关表:
该
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实现了客户端认证支持。插件开发人员不需要查阅这些文件。对于那些想了解更多关于服务器如何处理插件的人来说,他们可能会感兴趣。