【mysql】lolipopでイベントスケジューラを実行?【event sheduller】

IT技術系

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で実行することにしました。
作成の仕方は、次回の更新で説明したいと思います。