扩展 MySQL 8.0  / 第 4 章 MySQL 插件 API  /  4.3 插件 API 组件

4.3 插件 API 组件

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

SQL语句:

  • INSTALL PLUGIN在表中注册一个插件mysql.plugin并加载插件代码。

  • UNINSTALL PLUGINmysql.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_AUTHMYSQL_PLUGIN_DIR选项使客户端程序能够加载身份验证插件。

  • 有一些 C API 函数可以管理客户端插件。

要检查 MySQL 如何实现插件,请参阅 MySQL 源代码分发中的以下源文件:

  • 在该include/mysql目录中, plugin.h公开了公共插件 API。任何想要编写插件库的人都应该检查这个文件。 文件提供与特定类型的插件相关的附加信息。 包含特定于客户端插件的信息。 plugin_xxx.hclient_plugin.h

  • sql目录中, sql_plugin.hsql_plugin.cc包含内部插件实现。sql_acl.cc是服务器使用身份验证插件的地方。插件开发人员不需要查阅这些文件。对于那些想了解更多关于服务器如何处理插件的人来说,他们可能会感兴趣。

  • 在该sql-common目录下, client_plugin.h实现了C API客户端插件功能,client.c 实现了客户端认证支持。插件开发人员不需要查阅这些文件。对于那些想了解更多关于服务器如何处理插件的人来说,他们可能会感兴趣。