28.2.3 插件 API 组件

服务器插件实现包括几个组件。

SQL statements:

  • INSTALL PLUGINmysql.plugintable 中注册了插件并加载了插件代码。

  • UNINSTALL PLUGINmysql.plugintable 中注销插件并卸载插件代码。

  • 全文索引创建的WITH PARSER子句将全文分析器插件与给定的FULLTEXT索引相关联。

  • SHOW PLUGINS显示有关服务器插件的信息。

命令行选项和系统变量:

有关插件加载的其他信息,请参见第 5.5.1 节“安装和卸载插件”

Plugin-related tables:

  • INFORMATION_SCHEMA.PLUGINStable 包含插件信息。

  • mysql.plugintable 列出了与INSTALL PLUGIN一起安装且需要使用插件的每个插件。对于新的 MySQL 安装,此 table 是在安装过程中创建的。

Client 端插件的实现更为简单:

  • 对于mysql_options() C API 函数,MYSQL_DEFAULT_AUTHMYSQL_PLUGIN_DIR选项使 Client 端程序可以加载身份验证插件。

  • 有 C API 函数可用于 ManagementClient 端插件。

要检查 MySQL 如何实现插件,请在 MySQL 源代码发行版中查阅以下源文件:

  • include/mysql目录中,plugin.h公开了公共插件 API。任何想编写插件库的人都应检查该文件。 plugin_xxx.h文件提供了与特定类型的插件有关的其他信息。 client_plugin.h包含特定于 Client 端插件的信息。

  • sql目录中,sql_plugin.hsql_plugin.cc构成内部插件实现。 sql_acl.cc是服务器使用身份验证插件的位置。插件开发人员无需咨询这些文件。对于那些想进一步了解服务器如何处理插件的人来说,它们可能很有趣。

  • sql-common目录中,client_plugin.h实现 C APIClient 端插件功能,而client.c实现 Client 端身份验证支持。插件开发人员无需咨询这些文件。对于那些想进一步了解服务器如何处理插件的人来说,它们可能很有趣。