4.4.5写入守护程序插件

守护程序插件是用于代码的简单插件,用于由服务器运行但不与它通信。本节介绍如何使用中找到的示例插件编写守护程序服务器插件plugin / daemon_example.MySQL源发行版的目录。该目录包含daemon_example.cc.命名守护程序插件的源文件daemon_example.它以定期的时间间隔向一个名为的文件写入心跳串mysql-heartbeat.log.在数据目录中。

要编写守护程序插件,请在插件源文件中包含以下头文件。根据插件功能和要求,也可能需要其他MySQL或常规标题文件。

#include 

插件定义mysql_daemon_plugin.服务器插件类型和声明插件所需的数据结构。

daemon_example.cc.文件设置如下图库描述符。库描述符包括单个常规服务器插件描述符。

mysql_declare_plugin(daemon_example){mysql_daemon_plugin,&daemon_example“,”brian aker“,”brian aker“,”守护程序示例,在mysql-heartbeat.log中创建一个心跳击败文件“,plugin_license_gpl,daemon_example_plugin_init,/ * plugin init * / daemon_example_plugin_deinit,/ * plugindeinit * / 0x0100 / * 1.0 * /,null,/ *状态变量* / null,/ *系统变量* / null,/ *配置选项* / 0,/ *标志* /} mysql_declare_plugin_end;

名称成员 (daemon_example.)表示要用于引用Plugin的名称,例如安装插件或者卸载插件。这也是显示的名称显示插件或者Information_schema.plugins.

插件描述符的第二个成员,daemon_example_plugin.,指向特定于类型的守护程序插件描述符。此结构仅包括特定类型的API版本号:

struct st_mysql_daemon daemon_example_plugin = {mysql_daemon_interface_version};

类型特定结构没有接口功能。服务器和插件之间没有通信,除了服务器调用从常规插件描述符从常规插件描述符启动和停止插件的初始化和中幂化功能:

  • daemon_example_plugin_init()打开心跳文件,并将一个线程一起播放,周期性唤醒,并将下一个消息写入文件。

  • daemon_example_plugin_deinit()关闭文件并执行其他清理。

要编译并安装插件库文件,请使用说明第4.4.3节“编译和安装插件库”。。要使库文件可用,请在插件目录中安装它(由此指定的目录plugin_dir.系统变量)。为了daemon_example.插件,它是在从源代码构建MySQL时编译和安装。它也包含在二进制分布中。构建过程生成具有名称的共享对象库libdaemon_example.so.(这。所以后缀可能因平台而异。

要使用插件,请使用服务器注册。例如,要在运行时注册插件,请使用此语句,调整。所以必要时为您的平台后缀:

安装plugin daemon_example soname'libdaemon_example.so';

有关插件加载的其他信息,请参阅安装和卸载插件

要验证插件安装,请检查Information_schema.plugins.表或使用显示插件陈述。看获取服务器插件信息

加载插件时,它将常规间隔写入名为的文件mysql-heartbeat.log.在数据目录中。此文件生长而无限制,所以在您自己身份习惯后,插件正常运行,卸载:

卸载plugin daemon_example;