Le programmateur d’événements ( Event Scheduler ) (part 1/6)
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)
Architecte Solution Cloud chez Oracle
MySQL Geek, Architecte, DBA, Consultant, Formateur, Auteur, Blogueur et Conférencier.
—–
Blog: www.dasini.net/blog/en/
Twitter: https://twitter.com/freshdaz
SlideShare: www.slideshare.net/freshdaz
Youtube: https://www.youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
—–
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
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
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
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 😉