lolipopでイベントスケジューラを実行?
あ~、いつも失敗してしまいます。備忘録を残します。
まず結論です。
結論
ロリポップのMYSQLでは、イベントスケジューラスレッドの実行権限を渡されていないので、イベントの登録はできますが、スケジュール実行はできません。
せっかくですから、イベントの作成手順を説明させてくださいね。
基本的なイベントの作成手順
プロシージャの作成
delimiter $$
CREATE PROCEDURE update_status_flg()
BEGIN
# 更新
UPDATE orders
SET status_flg = 3
WHERE status_flg = 2;
END$$
delimiter ;
イベントの登録
CREATE EVENT event_update_status_flg
ON SCHEDULE EVERY 1 DAY STARTS '2018-12-25 01:00:00'
COMMENT 'フラグ更新のイベント'
DO
call update_status_flg;
イベントスケジューラースレッドの起動
SET GLOBAL event_scheduler = ON;
#ここで残念ながら、権限エラーがでます。
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
困ったので、私はcakephpでrest apiを作成して、cronで実行することにしました。
作成の仕方は、次回の更新で説明したいと思います。