Триггер 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 ;

4

Решение

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]