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