MariaDB でイベントを使用したいときに使う設定コマンドのメモ。
状態確認
show variables like '%event%';
MariaDB [zabbix]> show variables like '%event%'; +--------------------------------------------------------+-----------+ | Variable_name | Value | +--------------------------------------------------------+-----------+ | binlog_annotate_row_events | OFF | | event_scheduler | OFF | | performance_schema_events_stages_history_long_size | -1 | | performance_schema_events_stages_history_size | -1 | | performance_schema_events_statements_history_long_size | -1 | | performance_schema_events_statements_history_size | -1 | | performance_schema_events_waits_history_long_size | -1 | | performance_schema_events_waits_history_size | -1 | | replicate_annotate_row_events | OFF | | replicate_events_marked_for_skip | REPLICATE | +--------------------------------------------------------+-----------+ 10 rows in set (0.00 sec) MariaDB [zabbix]>
設定変更
一時的な設定変更
DB にログインして実行
set GLOBAL event_scheduler=ON;
MariaDB [zabbix]> set GLOBAL event_scheduler=ON; MariaDB [zabbix]> show variables like '%event%'; +--------------------------------------------------------+-----------+ | Variable_name | Value | +--------------------------------------------------------+-----------+ | binlog_annotate_row_events | OFF | | event_scheduler | ON | | performance_schema_events_stages_history_long_size | -1 | | performance_schema_events_stages_history_size | -1 | | performance_schema_events_statements_history_long_size | -1 | | performance_schema_events_statements_history_size | -1 | | performance_schema_events_waits_history_long_size | -1 | | performance_schema_events_waits_history_size | -1 | | replicate_annotate_row_events | OFF | | replicate_events_marked_for_skip | REPLICATE | +--------------------------------------------------------+-----------+ 10 rows in set (0.00 sec) MariaDB [zabbix]>
永続的な設定変更
my.cnf に記載して event 設定を永続的に有効化
my.cnfファイルの [mysqld] セクションに以下を記載する。
event_scheduler = on
イベントの作り方
実行間隔は1日単位だけではなく、月だったり年だっだと色々設定可能。
以下の例では1日おきの設定で記載。
delimiter $$ create event <イベント名> on schedule every 1 day starts 'YYYY-MM-DD hh:mm:ss' do begin <実行するクエリ> end$$ delimiter ;
イベント一覧の見方
show events\G
イベントの編集
delimiter $$ alter event <イベント名> on schedule every 1 day starts 'YYYY-MM-DD hh:mm:ss' do begin <実行するクエリ> end$$ delimiter ;
イベントの削除
drop event <イベント名>;