Триггер MYSQL, который внешне запускает PHP-скрипт


В настоящее время я пытаюсь использовать триггер 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 ;
Author: user2872194, 2015-11-26

1 answers

Подтвердите, что вы используете правильную папку плагина:

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, работающий под именем , имеет разрешения на доступ к этому сценарию и делает все, что он делает.

 1
Author: miken32, 2015-12-15 20:32:12