从外部启动PHP脚本的MYSQL触发器

我目前正在尝试使用 mysql触发器来启动php脚本.启动时,脚本将从特定网站检索数据,并将其放入另一个表中.我已经测试了脚本,当我使用php5运行它时,它当前有效.我也正确安装了lib_mysqludf_sys,并将正确的文件夹移动到mysql的插件文件夹中.当我创建触发器时,我没有收到任何错误.它只是不会运行我的 PHP脚本.我哪里出错了,我怎么能解决它?

DELIMITER $$
CREATE TRIGGER getFriends
    -> AFTER INSERT ON tbluser
    -> FOR EACH ROW    
    -> BEGIN
    ->   DECLARE RESULT INT;
    ->   SET RESULT = sys_exec('php5 /var/www/html/getFriends.php');
    ->END$$;
DELIMITER ;

最佳答案 确认您使用的是正确的插件文件夹:

SHOW VARIABLES LIKE 'plugin_dir';

重新创建功能:

DROP FUNCTION IF EXISTS sys_exec;
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';

确保您使用可执行文件的完整路径:

SET RESULT = sys_exec('/usr/bin/php5 /var/www/html/getFriends.php');

并确保运行MySQL的用户具有访问此脚本的权限,并执行其正在执行的操作.

点赞