扩展 MySQL 8.4  /  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 实现客户端认证支持。插件开发人员不需要咨询这些文件。它们可能对那些想要了解服务器如何处理插件的人感兴趣。