GNU/Linux >> LINUX-Kenntnisse >  >> Linux

MySQL-Ereignisplaner

MySQL-Ereignisse sind Aufgaben, die nach einem Zeitplan ausgeführt werden. Wenn Sie ein Ereignis erstellen, erstellen Sie ein benanntes Datenbankobjekt, das eine oder mehrere SQL-Anweisungen enthält, die mit Beginn und Ende zu einem oder mehreren regelmäßigen Datums- und Uhrzeitintervallen ausgeführt werden können. Ähnlich dem Task Scheduler in Windows oder crontab unter UNIX.

Funktionen und Eigenschaften

  • Ein Ereignis wird durch seinen Namen und das Schema, dem es zugeordnet ist, eindeutig identifiziert.
  • Führen Sie eine bestimmte Aktion gemäß einem Zeitplan einmalig oder wiederkehrend durch.
  • Importieren und speichern Sie Dateien von GitHub®, Dropbox®, Google Drive® und One Drive®.
  • Drag-and-Drop-Markdown- und HTML-Dateien in Dillinger.
  • Dokumente als Markdown, HTML und PDF exportieren.

Zunächst müssen Sie den Status des Ereignisplaners validieren. Ein spezieller Event-Scheduler-Thread führt Ereignisse aus. Bei der Ausführung können Benutzer den Event-Scheduler-Thread und seinen aktuellen Zustand sehen, wenn die Benutzer das Prozessprivileg in der Ausgabe von SHOW PROCESSLIST haben .

Beispiel

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)

Wenn der Ereignisplaner nicht aktiviert ist, legen Sie den event_scheduler fest Systemvariable zum Aktivieren und Starten:

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

Legen Sie auf ähnliche Weise den event_scheduler fest Systemvariable zum Deaktivieren oder Ausschalten:

SET GLOBAL event_scheduler = OFF;
SET @@GLOBAL.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@GLOBAL.event_scheduler = 0;

Ereignissyntax

Die CREATE EVENT-Anweisung erstellt ein neues Ereignis. Dies ist die grundlegende Syntax der CREATE EVENT-Anweisung:

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

Wenn es sich um ein einmaliges Ereignis handelt, verwenden Sie:

AT timestamp [+ INTERVAL]

Wenn es sich um ein wiederkehrendes Ereignis handelt, verwenden Sie:

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

Beispiel:

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

Ergebnisse:

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

Privilegien gewähren

Um einem Benutzer das Erstellen, Ändern oder Löschen von Ereignissen zu ermöglichen, müssen Sie die folgenden Berechtigungen bereitstellen:

GRANT EVENT ON (schema) TO (user)

Der folgende Befehl erteilt beispielsweise die Berechtigung für das Schemamyschema an einen Benutzer namens lin@tolvar .

GRANT EVENT ON myuschema TO lin@tolvar

Wenn Sie ein Sternchen (*) verwenden, erteilen Sie allen Schemas Berechtigungen.


Linux
  1. Installieren Sie MariaDB oder MySQL unter Linux

  2. Löschen Sie Tabellen in MySQL

  3. MySQL-Verbindungsmethoden

  4. MySQL-Ereignisplaner

  5. Richten Sie die MySQL-Quellreplikatreplikation ein

MongoDB vs. MySQL

Handbuch für MySQL-Ereignisse und Ereignisplaner

MySQL-Datentypen

Was ist MySQL vs. MariaDB vs. Percona?

MySQL-Sicherung 1.1

Planen einer regelmäßigen Veranstaltung:Cron/Cron-Alternativen (einschließlich Sellerie)