GNU/Linux >> Znalost Linux >  >> Linux

Plánovač událostí MySQL

Události MySQL jsou úlohy, které běží podle plánu. Když vytvoříte událost, vytvoříte pojmenovaný databázový objekt, který obsahuje jeden nebo více příkazů SQL připravených ke spuštění, začátek a konec, v jednom nebo více pravidelných intervalech data a času. Podobné jako Task Scheduler ve Windows nebo crontab v UNIXu.

Funkce a vlastnosti

  • Událost je jednoznačně identifikována svým názvem a schématem, ke kterému je přiřazena.
  • Proveďte konkrétní akci podle plánu jednorázově nebo opakovaně.
  • Importujte a ukládejte soubory z GitHub®, Dropbox®, Google Drive® a One Drive®.
  • Přetáhněte soubory značek a HTML do Dillinger.
  • Exportujte dokumenty jako Markdown, HTML a PDF.

Nejprve musíte ověřit stav stavu Plánovače událostí. Vlákno plánovače speciálních událostí spouští události. Při spuštění mohou uživatelé vidět vlákno plánovače událostí a jeho aktuální stav, pokud mají uživatelé oprávnění procesu ve výstupu SHOW PROCESSLIST .

Příklad

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)

Pokud není plánovač událostí povolen, nastavte event_scheduler systemvariable pro její aktivaci a spuštění:

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

Podobně nastavte event_scheduler systémová proměnná pro deaktivaci nebo vypnutí:

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

Syntaxe události

Příkaz CREATE EVENT vytvoří novou událost. Toto je základní syntaxe příkazu CREATE EVENT:

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

Pokud je událost jednorázová, použijte:

AT timestamp [+ INTERVAL]

Pokud je událost opakující se, použijte:

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

Příklad:

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

Výsledky:

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

Udělit oprávnění

Chcete-li uživateli umožnit vytvářet, upravovat nebo mazat události, musíte mu poskytnout oprávnění:

GRANT EVENT ON (schema) TO (user)

Například následující příkaz uděluje oprávnění pro schémamyschema uživateli s názvem lin@tolvar .

GRANT EVENT ON myuschema TO lin@tolvar

Pokud použijete hvězdičku (*), udělujete oprávnění všem schématům.


Linux
  1. Nakonfigurujte replikaci zdroje MySQL

  2. Importujte databázi MySQL

  3. Resetujte kořenové heslo MySQL

  1. Nainstalujte MariaDB nebo MySQL na Linux

  2. Zálohování MySQL 1.1

  3. Pochopení oprávnění MySQL

  1. Oprava databází MySQL InnoDB

  2. Zrušte tabulky v MySQL

  3. Přehled prohlížeče událostí Windows