我需要从触发器调用外部脚本来拦截数据库中的每个插入。这是因为我无法轮询该值,我正在为具有 ARM 架构且只有 250MB RAM 的嵌入式系统进行编码。触发器是正确的选择,触发器的代码运行良好,我得到:
FUNCTION mydb.sys_exec does not exist (MySQL error code: 1305, SQLState: 42000 )
所以我尝试安装这个: https ://github.com/mysqludf/lib_mysqludf_sys
但它让我:
ERROR: You need libmysqlclient development software installed
to be able to compile this UDF, on Debian/Ubuntu just run:
apt-get install libmysqlclient15-dev
所以如果我输入
sudo apt-get install libmysqlclient15-dev
我得到:注意,选择“libmysqlclient-dev”而不是“libmysqlclient15-dev”
当然它不是正确的包,因为它不起作用。git 中包含的 .so 文件是为 intelx86 编译的。
有人有想法吗?由于缺少大量依赖项,因此在 git 中编译 .c 是完全不可能的。
或者..如何在没有 sys_exec 的情况下从触发器执行外部脚本?
PS:为了完整起见,这是触发脚本:
分隔符@@
CREATE TRIGGER command_controller
AFTER INSERT ON myDB.foo
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd='./foo ';
SET result = sys_eval(cmd);
END;
@@
DELIMITER ;