GNU/Linux >> Tutoriels Linux >  >> Linux

Planificateur d'événements MySQL

Les événements MySQL sont des tâches qui s'exécutent selon un calendrier. Lorsque vous créez un événement, vous créez un objet de base de données nommé qui contient une ou plusieurs instructions SQL prêtes à être exécutées, au début et à la fin, à un ou plusieurs intervalles réguliers de date et d'heure. Semblable au Task Scheduler sous Windowsou crontab sous UNIX.

Caractéristiques et propriétés

  • Un événement est identifié de manière unique par son nom et le schéma auquel il est affecté.
  • Effectuer une action spécifique selon un calendrier ponctuel ou récurrent.
  • Importez et enregistrez des fichiers depuis GitHub®, Dropbox®, Google Drive® et One Drive®.
  • Faites glisser et déposez les fichiers Markdown et HTML dans Dillinger.
  • Exportez des documents au format Markdown, HTML et PDF.

Tout d'abord, vous devez valider le statut du statut Event Scheduler. Un thread de planificateur d'événements spécial exécute des événements. Lors de l'exécution, les utilisateurs peuvent voir le thread du planificateur d'événements et son état actuel si les utilisateurs ont le privilège de processus dans la sortie de SHOW PROCESSLIST .

Exemple

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)

Si le planificateur d'événements n'est pas activé, définissez le event_scheduler variable système pour l'activer et le démarrer :

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

De même, définissez le event_scheduler variable système pour la désactiver ou l'éteindre :

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

Syntaxe de l'événement

L'instruction CREATE EVENT crée un nouvel événement. Voici la syntaxe de base de l'instruction CREATE EVENT :

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

Si l'événement est un événement ponctuel, utilisez :

AT timestamp [+ INTERVAL]

Si l'événement est un événement récurrent, utilisez :

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

Exemple :

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

Résultats :

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

Accorder des privilèges

Pour autoriser un utilisateur à créer, modifier ou supprimer des événements, vous devez fournir des privilèges :

GRANT EVENT ON (schema) TO (user)

Par exemple, la commande suivante accorde l'autorisation pour le schémamyschema à un utilisateur appelé lin@tolvar .

GRANT EVENT ON myuschema TO lin@tolvar

Si vous utilisez un astérisque (*), vous accordez des autorisations à tous les schémas.


Linux
  1. Supprimer des tables dans MySQL

  2. Méthodes de connexion MySQL

  3. Planificateur d'événements MySQL

  4. Configurer la réplication source-réplica MySQL

  5. Comment installer MySQL sur Debian 11

MongoDB contre MySQL

Guide des événements MySQL et du planificateur d'événements

Types de données MySQL

Qu'est-ce que MySQL vs MariaDB vs Percona

Sauvegarde MySQL 1.1

Planification d'un événement régulier :alternatives Cron/Cron (y compris Celery)