美文网首页
2021-03-02 自定义插件my_plugin

2021-03-02 自定义插件my_plugin

作者: 5A风景区 | 来源:发表于2021-03-02 20:46 被阅读0次

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

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

    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; 
    

    相关文章

      网友评论

          本文标题:2021-03-02 自定义插件my_plugin

          本文链接:https://www.haomeiwen.com/subject/yofxqltx.html