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