mylab_sys_exec UDF调用mysql外部系统命令(For linux)
有时候为了方便,利用event/trigger调用系统外部命令,可因为安全问题,mysql自身并没有提供相关命令,这里提供个调用系统命令的自定义函数mylab_sys_exec
so文件下载:mylab_sys_exec.so ( mysql5.1.34 测试通过)
加载:
CREATE FUNCTION mylab_sys_exec RETURNS INTEGER SONAME "mylab_sys_exec.so";
使用:
SELECT mylab_sys_exec (‘CMD’);
源码:
my_bool mylab_sys_exec_init (UDF_INIT *initid, UDF_ARGS *args, char *message );
void mylab_sys_exec_deinit (UDF_INIT *initid );
int mylab_sys_exec (UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error );
void mylab_sys_exec_deinit (UDF_INIT *initid );
int mylab_sys_exec (UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error );
my_bool mylab_sys_exec_init( UDF_INIT *initid, UDF_ARGS *args, char *message )
{
if(args->arg_count == 1 && args->arg_type[0]==STRING_RESULT)
{
return 0;
} else {
strcpy( message, "One string type parameter expected");
return 1;
}
}
void mylab_sys_exec_deinit ( UDF_INIT *initid ){}
int mylab_sys_exec( UDF_INIT *initid , UDF_ARGS *args , char *is_null , char *error )
{
return system (args->args[0]);
}
文章链接地址:mylab_sys_exec UDF调用mysql外部系统命令(For linux)
Related posts:
最近评论