MySQL:如何编写daemon plugin(2)
这里涉及到的一些结构体,对其他类型的plugin而言也是通用的
1)st_mysql_plugin
无论声明哪种plugin,至少要包含该结构体
字段 |
类型 |
描述 |
type |
int |
用于描述plugin的类型,随着版本更新,越来越多,在5.5中包含8种类型: MYSQL_UDF_PLUGIN MYSQL_STORAGE_ENGINE_PLUGIN MYSQL_FTPARSER_PLUGIN MYSQL_DAEMON_PLUGIN MYSQL_INFORMATION_SCHEMA_PLUGIN MYSQL_AUDIT_PLUGIN MYSQL_REPLICATION_PLUGIN MYSQL_AUTHENTICATION_PLUGIN |
info |
void* |
用于指向特定的plugin描述符结构体,在daemon plugin中结构体为st_mysql_daemon,一般第一个字段都是插件接口的版本号 |
name |
const char* |
plugin的名字,需要和安装时的名字一致 |
author |
const char* |
plugin的作者信息,会在i_s.plugins表中显示 |
descry |
const char* |
描述插件 |
license |
ubt |
插件许可证:PLUGIN_LICENSE_PROPRIETARY PLUGIN_LICENSE_GPL PLUGIN_LICENSE_BSD |
init |
int (*init)(void *) |
当插件被加载时或者mysqld重启时会执行该函数,一般我们会在这里创建好后台线程 |
deinit |
int (*deinit)(void *); |
当插件被卸载时做的工作,例如取消线程,清理内存等 |
version |
unsigned int |
plugin的版本信息 |
status_vars |
st_mysql_show_var* |
描述在执行show status时显示的信息 |
system_vars |
st_mysql_sys_var ** |
描述在执行show variables显示的信息 |
__reserved1 |
void* |
注释说为检查依赖而保留,不太明白,直接设为NULL即可 |
flags |
unsigned long |
5.5之后增加的字段,plugin的flag:0、 PLUGIN_OPT_NO_INSTALL(不可动态加载)、PLUGIN_OPT_NO_UNINSTALL(不可动态加载) |
相关新闻>>
- 发表评论
-
- 最新评论 更多>>