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