GNU/Linux >> Tutoriales Linux >  >> Linux

Programador de eventos MySQL

Los eventos de MySQL son tareas que se ejecutan de acuerdo con un cronograma. Cuando crea un evento, crea un objeto de base de datos con nombre que contiene una o más sentencias SQL listas para ejecutarse, comenzando y terminando, en uno o más intervalos regulares de fecha y hora. Similar al Task Scheduler en Windowso crontab en UNIX.

Características y propiedades

  • Un evento se identifica únicamente por su nombre y el esquema al que está asignado.
  • Realizar una acción específica según un cronograma una vez o recurrente.
  • Importe y guarde archivos desde GitHub®, Dropbox®, Google Drive® y One Drive®.
  • Arrastre y suelte archivos Markdown y HTML en Dillinger.
  • Exporte documentos como Markdown, HTML y PDF.

En primer lugar, debe validar el estado del programador de eventos. Un subproceso del programador de eventos especiales ejecuta eventos. Cuando se ejecuta, los usuarios pueden ver el hilo del programador de eventos y su estado actual si los usuarios tienen el privilegio de proceso en la salida de SHOW PROCESSLIST .

Ejemplo

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 el programador de eventos no está habilitado, configure el event_scheduler systemvariable para habilitarlo e iniciarlo:

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

Del mismo modo, configure el event_scheduler variable del sistema para deshabilitarla o apagarla:

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

Sintaxis de eventos

La sentencia CREATE EVENT crea un nuevo evento. Esta es la sintaxis básica de la sentencia CREATE EVENT:

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

Si el evento es un evento de una sola vez, use:

AT timestamp [+ INTERVAL]

Si el evento es un evento recurrente, use:

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

Ejemplo:

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

Resultados:

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

Otorgar privilegios

Para permitir que un usuario cree, modifique o elimine eventos, debe proporcionar privilegios:

GRANT EVENT ON (schema) TO (user)

Por ejemplo, el siguiente comando otorga permiso para el esquema myschema a un usuario llamado lin@tolvar .

GRANT EVENT ON myuschema TO lin@tolvar

Si usa un asterisco (*), otorga permisos para todos los esquemas.


Linux
  1. Reparación de bases de datos MySQL InnoDB

  2. Configurar la replicación fuente-fuente de MySQL

  3. Importar una base de datos MySQL

  4. Restablecer una contraseña raíz de MySQL

  5. Descripción general del Visor de eventos de Windows

Instalar MariaDB o MySQL en Linux

MongoDB frente a MySQL

Guía del programador de eventos y eventos de MySQL

Tipos de datos MySQL

¿Qué es MySQL vs MariaDB vs Percona?

Cambiar el nombre de la base de datos MySQL