服务器插件实现包含多个组件。
SQL 语句
INSTALL PLUGIN在mysql.plugin表中注册插件并加载插件代码。UNINSTALL PLUGIN从mysql.plugin表中注销插件并卸载插件代码。用于全文索引创建的
WITH PARSER子句将全文解析器插件与给定的FULLTEXT索引关联。SHOW PLUGINS显示有关服务器插件的信息。
命令行选项和系统变量
--plugin-load选项使插件能够在服务器启动时加载。plugin_dir系统变量指示所有插件必须安装的目录位置。此变量的值可以在服务器启动时使用--plugin_dir=选项指定。 mysql_config --plugindir 显示默认插件目录路径名。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实现客户端认证支持。插件开发人员不需要咨询这些文件。它们可能对那些想要了解服务器如何处理插件的人感兴趣。