Mysql Udf sys_exec函数调用shell脚本

时间:2012-10-12 11:21:32

标签: mysql

我正在从mysql UDF函数sys_exec调用一个shell脚本:

 SET cmd = CONCAT('cd /home/enablement;sh execute.sh ', CONCAT('1', ' ', '1', ' ', '1'));
SET result = sys_exec(cmd);
SELECT result FROM DUAL; 

但是我得到一个错误代码32512的结果可能是两个不同的用户一个用于mysql而另一个用于linux(用于execute.sh脚本),请你指导我怎样才能使mysql成为可能用户在调用sys_exec函数时访问execute.sh文件。

感谢Adv

2 个答案:

答案 0 :(得分:3)

我知道这篇文章很老但也许会有所帮助 你应该做这个
$ sudo /etc/init.d/apparmor stop
因为AppArmor限制了UDF功能的执行。

答案 1 :(得分:0)

请不要完全停止apparmor,只需在apparmor的mysqld配置文件中启用您的用例。例如,我需要在mysql中使用redis。

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld

然后在末尾插入此行

/usr/bin/redis-cli mr,

保存文件并重新加载apparmor

sudo service apparmor reload