4.4写入插件

要创建插件库,必须提供所需的描述符信息,该信息指示库文件包含的插件,并为每个插件编写接口函数。

每个服务器插件都必须具有常规描述符,该符合将信息提供给插件API,以及特定于特定的描述符,其提供有关给定类型插件的插件界面的信息。所有插件类型的通用描述符的结构是相同的。特定于特定的描述符的结构在插件类型之间变化,并由插件需要的要求确定。服务器插件接口还支持插件以暴露状态和系统变量。这些变量通过了通过的变量显示状态显示变量陈述和相应的Information_Schema.表。

对于客户端插件,架构有点不同。每个插件必须具有描述符,但没有分为单独的常规和类型特定的描述符。相反,描述符从所有客户端插件类型的固定成员组开始,并且公共成员后跟实现特定插件类型所需的任何其他成员。

您可以在C或C ++中编写插件(或其他可以使用C调用约定的语言)。插件是动态加载和卸载的,因此您的操作系统必须支持动态加载,并且必须动态地编译呼叫应用程序(不静态)。对于服务器插件,这意味着mysqld.必须动态链接。

服务器插件包含成为正在运行服务器的一部分的代码,因此当您编写插件时,您绑定到否则适用于编写服务器代码的任何和所有约束。例如,如果您尝试使用来自的功能,则可能存在问题libstdc ++图书馆。这些约束可能会在服务器的未来版本中更改,因此服务器升级可能需要对最初为旧服务器编写的插件进行修订。有关这些约束的信息,请参阅MySQL源配置选项, 和处理编译mysql的问题

客户端插件编写器应避免依赖于调用应用程序所具有的符号,因为您无法确定应用程序将使用该插件。