扩展 MySQL 9.0  /  MySQL 插件 API  /  插件 API 组件

4.3 插件 API 组件

服务器插件实现包含多个组件。

SQL 语句

  • INSTALL PLUGINmysql.plugin 表中注册插件并加载插件代码。

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

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

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

命令行选项和系统变量

  • --plugin-load 选项允许在服务器启动时加载插件。

  • plugin_dir 系统变量指示所有插件必须安装到的目录的位置。 此变量的值可以在服务器启动时使用 --plugin_dir=dir_name 选项指定。 mysql_config --plugindir 显示默认插件目录路径名。

有关插件加载的更多信息,请参见 安装和卸载插件

与插件相关的表

  • 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.h 文件提供了与特定插件类型相关的其他信息。 client_plugin.h 包含特定于客户端插件的信息。

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

  • sql-common 目录中,client_plugin.h 实现 C API 客户端插件函数,而 client.c 实现客户端身份验证支持。 这些文件不需要插件开发人员咨询。 它们可能对那些想要更多了解服务器如何处理插件的人员感兴趣。