从MySQL存储过程执行shell命令

时间:2017-01-31 07:17:47

标签: mysql

是否可以运行任意shell命令 - 例如,使用MySQL存储过程将文件从一个文件夹移动到另一个文件夹?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

MySQL不提供开箱即用的此功能,但它由lib_mysqludf_sys库提供。如果安装它,您将能够调用其sys_exec函数来执行命令:

DELIMITER @@

CREATE TRIGGER Test_Trigger 
AFTER INSERT ON MyTable 
FOR EACH ROW 
BEGIN
 DECLARE cmd CHAR(255);
 DECLARE result int(10);
 SET cmd=('mv path/to/file new/path/file');
 SET result = sys_exec(cmd);
END;
@@
DELIMITER ;

(我在http://crazytechthoughts.blogspot.com/2011/12/call-external-program-from-mysql.html找到了这种方法。)