您好,欢迎访问一九零五行业门户网

MysSQLMariaDB用trigger调用shell

myssqlmariadb用trigger调用shell
windows环境下:
drop function if exists lib_mysqludf_sys_info;
drop function if exists sys_get;
drop function if exists sys_set;
drop function if exists sys_exec;
drop function if exists sys_eval;
create function lib_mysqludf_sys_info returns string soname 'lib_mysqludf_sys.dll';
create function sys_get returns string soname 'lib_mysqludf_sys.dll';
create function sys_set returns int soname 'lib_mysqludf_sys.dll';
create function sys_exec returns int soname 'lib_mysqludf_sys.dll';
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
select sys_eval('ipconfig');
linux环境下:
在mysql的触发器中执行一个外部程序。
步骤如下:
一、解压附件的压缩包之后
如果不想自己编译的话,,把lib_mysqludf_sys.so文件放到 mysql的lib/mysql/plugin/
目录下。
二、执行chcon -t texrel_shlib_t mysql/lib/mysql/plugin/lib_mysqludf_sys.so
三、创建函数
drop function if exists lib_mysqludf_sys_info;
drop function if exists sys_get;
drop function if exists sys_set;
drop function if exists sys_exec;
drop function if exists sys_eval;
create function lib_mysqludf_sys_info returns string soname 'lib_mysqludf_sys.so';
create function sys_get returns string soname 'lib_mysqludf_sys.so';
create function sys_set returns int soname 'lib_mysqludf_sys.so';
create function sys_exec returns int soname 'lib_mysqludf_sys.so';
create function sys_eval returns string soname 'lib_mysqludf_sys.so';
四、测试
1、准备sh文件
在linux系统中执行下面的命令
su mysql
mkdir /mysqludftest
cd mysqludftest
vi test.sh
#/bin/sh
date > testlog.txt
chmod +x ./test.sh
2、准备数据库表和触发器
选择一个数据库执行如下命令:
create table test1(a1 int) engine=innodb;
create table test2(a2 int) engine=innodb;
delimiter |
drop trigger /*!50032 if exists */ `test`.`testref`|
create trigger `test`.`testref` before insert on `test`.`test1`
for each row begin
declare done int default 999;
set done = sys_exec(/mysqludftest/test.sh);
insert into test2(a2)values(2);
end;
|
delimiter ;
3、向test1表中插入一条数据后,请在linux命令行:用root用户,执行以下命令:find / -name testlog.txt
查找testlog.txt文件。
在 centos/rhel/scientific linux 6 下安装 lamp (apache with mariadb and php)
mariadb proxy读写分离的实现
linux下编译安装配置mariadb数据库的方法
centos系统使用yum安装mariadb数据库
安装mariadb与mysql并存
mariadb 的详细介绍:请点这里
mariadb 的下载地址:请点这里
本文永久更新链接地址:
其它类似信息

推荐信息