mysql 自定义 plugin 源码,2021-03-02 自定义插件my_plugin

MySQL源码中包含了插件开发的例子,在源码目录plugin/daemon_example,该例子实现的是每隔5秒向数据目录的mysql-heartbeat.log文件中写入心跳时间戳.以daemon_example为基础,开发自定义插件。

拷贝daemon_example目录改名为my_plugin,依次修改my_plugin目录下的文件,把daemon_example修改为my_plugin

45f0d2fe07cc

image.png

#CMakeLists.txt

MYSQL_ADD_PLUGIN(my_plugin

my_plugin.cc

MODULE_ONLY

MODULE_OUTPUT_NAME "libmy_plugin"

TEST_ONLY

)

INSTALL(FILES

my_plugin.ini

DESTINATION ${INSTALL_PLUGINDIR}

COMPONENT Test

)

#my_plugin.cc

fn_format(heartbeat_filename, "my_plugin", "", ".log",

MY_REPLACE_EXT | MY_UNPACK_FILENAME);

mysql_declare_plugin(daemon_example){

MYSQL_DAEMON_PLUGIN,

&daemon_example_plugin,

"my_plugin",

"jzh",

"Daemon example, creates a heartbeat beat file in my_plugin.log",

PLUGIN_LICENSE_GPL,

daemon_example_plugin_init, /* Plugin Init */

NULL, /* Plugin Check uninstall */

daemon_example_plugin_deinit, /* Plugin Deinit */

0x0100 /* 1.0 */,

NULL, /* status variables */

NULL, /* system variables */

NULL, /* config options */

0, /* flags */

} mysql_declare_plugin_end;

#my_plugin.ini

libmy_plugin

my_plugin

clion 编译插件生成 libdaemon_example.so  并放到插件目录下 ,授予可以执行权限

cp ./cmake-build-debug/plugin_output_directory/libdaemon_example.so /data1/mycode/mysql_debug/mysql-8.0.18/mysql_stuff/install/lib/plugin/

chown jzh:jzh /data1/mycode/mysql_debug/mysql-8.0.18/mysql_stuff/install/lib/plugin/libmy_plugin.so

安装

INSTALL PLUGIN my_plugin SONAME 'my_plugin.so';

卸载

UNINSTALL PLUGIN my_plugin;

查看

select * from mysql.plugin;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值