lolipopでイベントスケジューラを実行?
あ~、いつも失敗してしまいます。備忘録を残します。
まず結論です。
結論
ロリポップのMYSQLでは、イベントスケジューラスレッドの実行権限を渡されていないので、イベントの登録はできますが、スケジュール実行はできません。
せっかくですから、イベントの作成手順を説明させてくださいね。
基本的なイベントの作成手順
プロシージャの作成
1 2 3 4 5 6 7 8 9 10 11 |
delimiter $$ CREATE PROCEDURE update_status_flg() BEGIN # 更新 UPDATE orders SET status_flg = 3 WHERE status_flg = 2; END$$ delimiter ; |
イベントの登録
1 2 3 4 5 6 7 |
CREATE EVENT event_update_status_flg ON SCHEDULE EVERY 1 DAY STARTS '2018-12-25 01:00:00' COMMENT 'フラグ更新のイベント' DO call update_status_flg; |
イベントスケジューラースレッドの起動
1 2 3 4 5 6 |
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で実行することにしました。
作成の仕方は、次回の更新で説明したいと思います。