GNU/Linux >> Linux の 問題 >  >> Linux

MySQLイベントスケジューラ

MySQLイベントは、スケジュールに従って実行されるタスクです。イベントを作成するときは、日付と時刻の1つ以上の定期的な間隔で、開始と終了の実行の準備ができている1つ以上のSQLステートメントを含む名前付きデータベースオブジェクトを作成します。 Task Schedulerに似ています Windowsまたはcrontab UNIXの場合。

機能とプロパティ
  • イベントは、その名前と割り当てられたスキーマによって一意に識別されます。
  • スケジュールに従って特定のアクションを1回または繰り返し実行します。
  • GitHub®、Dropbox®、GoogleDrive®、OneDrive®からファイルをインポートして保存します。
  • マークダウンファイルとHTMLファイルをDillingerにドラッグアンドドロップします。
  • ドキュメントをMarkdown、HTML、PDFとしてエクスポートします。

まず、イベントスケジューラのステータスを検証する必要があります。特別なイベントスケジューラスレッドがイベントを実行します。実行中、ユーザーがSHOW PROCESSLISTの出力でプロセス権限を持っている場合、ユーザーはイベントスケジューラスレッドとその現在の状態を確認できます。 。

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
    Id: 1
  User: root
  Host: localhost
    db: NULL
Command: Query
  Time: 0
  State: NULL
  Info: show processlist
*************************** 2. row ***************************
    Id: 2
  User: event_scheduler
  Host: localhost
    db: NULL
Command: Daemon
  Time: 3
  State: Waiting for next activation
  Info: NULL
2 rows in set (0.00 sec)

イベントスケジューラが有効になっていない場合は、 event_schedulerを設定します 有効にして開始するsystemvariable:

SET GLOBAL event_scheduler = ON;
SET @@GLOBAL.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@GLOBAL.event_scheduler = 1;

同様に、 event_schedulerを設定します 無効またはオフにするシステム変数:

SET GLOBAL event_scheduler = OFF;
SET @@GLOBAL.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@GLOBAL.event_scheduler = 0;
イベント構文

CREATEEVENTステートメントは新しいイベントを作成します。これは、CREATEEVENTステートメントの基本的な構文です。

    CREATE EVENT [IF NOT EXIST] event_name
    ON SCHEDULE schedule
    DO
    event_body

イベントが1回限りのイベントの場合は、次を使用します。

AT timestamp [+ INTERVAL]

イベントが定期的なイベントである場合は、次を使用します:

EVERY interval STARTS timestamp [+INTERVAL] ENDS timestamp [+INTERVAL]

例:

CREATE EVENT [IF NOT EXIST] test_event
ON SCHEDULE EVERY 10 SECONDS
DO
    INSERT INTO database VALUES (now());

結果:

1   2021-02-23 15:44:05
2   2021-02-23 15:44:15
3   2021-02-23 15:44:25
4   2021-02-23 15:44:35
5   2021-02-23 15:44:45
6   2021-02-23 15:44:55
7   2021-02-23 15:45:05
8   2021-02-23 15:45:15
9   2021-02-23 15:45:25
10   2021-02-23 15:45:35
権限を付与する

ユーザーがイベントを作成、変更、または削除できるようにするには、権限を提供する必要があります。

GRANT EVENT ON (schema) TO (user)

たとえば、次のコマンドはスキーマ myschemaの権限を付与します lin @ tolvarというユーザーに 。

GRANT EVENT ON myuschema TO lin@tolvar

アスタリスク(*)を使用する場合は、すべてのスキーマにアクセス許可を付与します。


Linux
  1. MySQLソース-ソースレプリケーションを構成する

  2. MySQLデータベースをインポートする

  3. MySQLルートパスワードをリセットする

  1. Debian 11 に MySQL をインストールする方法

  2. MySQL バックアップ 1.1

  3. 定期的なイベントのスケジュール:Cron/Cron の代替 (Celery を含む)

  1. LinuxにMariaDBまたはMySQLをインストールする

  2. MySQLでテーブルを削除する

  3. MySQL接続方法