Le programmateur d’événements ( Event Scheduler ) (part 1/6)

avril 20, 2009

Poursuivons l’exploration des fonctionnalités phares de MySQL 5.1, et penchons-nous sur le programmateur d’évènements (Event Scheduler) présent depuis MySQL 5.1.6 . Cet article est rédigé avec la version 5.1.22 de MySQL.

Qu’est-ce qu’un programmateur d’évènements ?

Le programmateur d’événements ou « event scheduler » offre la possibilité, à l’administrateur de base de données, de déclencher l’exécution de requêtes programmées directement dans le serveur MySQL. Ce planificateur de tâches (CRON-like) interne permet donc d’automatiser très simplement des tâches à des intervalles réguliers, ou à heure fixe, sans avoir besoin de configurer le système sur lequel la base de données fonctionne.

Comment fonctionne le programmateur d’évènements ?

La première chose à faire est de vérifier si le programmateur d’évènements est activé. Pour ce faire regardez la valeur du paramètre event_scheduler:

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+

Par défaut le programmateur n’est pas activé, event_scheduler vaut donc OFF. Activez le avec la commande SET GLOBAL (le droit SUPER est nécessaire).

mysql> SET GLOBAL event_scheduler = 1;
mysql> SHOW GLOBAL VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+

Un fois activé, le programmateur d’évènements créé un processus léger (thread) qui tourne en tâche de fond. Ce processus est chargé d’exécuter les événements lorsque le moment est venu. On peut le voir avec la commande SHOW PROCESSLIT. Cependant, il faut avoir le privilège SUPER pour pouvoir la lancer.

mysql> SHOW PROCESSLIST \G
*************************** 2. row ***************************
Id: 4
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 0
State: Waiting for next activation
Info: NULL

(à suivre… event scheduler: Créer un évènement)

4 Responses to “Le programmateur d’événements ( Event Scheduler ) (part 1/6)”

  1. Bonjour,
    Existe-t-il un moyen d’activer ce planificateur d’événement au niveau d’une base de données et pas d’une autre ?
    Bonne journée
    TH

  2. Bonjour Thierry,
    L’activation du planificateur est globale.
    Cependant, pour ce cas d’utilisation, tu vas créer un utilisateur qui a le droit EVENT sur la base de données (schéma) en question.
    ex: GRANT EVENT ON myschema.* TO jon@ghidora;
    https://dev.mysql.com/doc/refman/8.0/en/events-privileges.html

    Olivier

  3. Bonjour,
    je gère un mariadb 10.3.21, j’ai planifié un backup journalier à xh. j’ai l’impression que chaque jour quand le backup se fait le Event Scheduler dans l’interface PhpMyAdmin va toujours en status Off.Est-ce qu’il y a moyen d’automatiser le Event Scheduler en ON ?
    Merci

  4. Hello,
    désolé, je m’intéresse à pas mal de technos, mais pas à celle que tu mentionnes.
    Ceci dit, je t’encourage vivement à utiliser MySQL 8.
    D’ailleurs l’event scheduler est à ON 😉