GNU/Linux >> Belajar Linux >  >> Linux

Penjadwal Acara MySQL

MySQL Events adalah tugas-tugas yang berjalan sesuai dengan jadwal. Saat Anda membuat acara, Anda membuat objek database bernama yang berisi satu atau lebih pernyataan SQL yang siap dieksekusi, mulai dan berakhir, pada satu atau beberapa interval tanggal dan waktu yang teratur. Mirip dengan Task Scheduler di Windowsatau crontab di UNIX.

Fitur dan properti

  • Sebuah peristiwa diidentifikasi secara unik berdasarkan namanya dan skema yang ditugaskan padanya.
  • Melakukan tindakan tertentu sesuai jadwal satu kali atau berulang.
  • Impor dan simpan file dari GitHub®, Dropbox®, Google Drive®, dan One Drive®.
  • Tarik dan lepas markdown dan file HTML ke Dillinger.
  • Ekspor dokumen sebagai Markdown, HTML, dan PDF.

Pertama-tama, Anda harus memvalidasi status status Penjadwal Acara. Utas penjadwal acara khusus mengeksekusi acara. Saat menjalankan, pengguna dapat melihat utas penjadwal acara dan statusnya saat ini jika pengguna memiliki hak istimewa proses dalam output SHOW PROCESSLIST .

Contoh

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)

Jika penjadwal acara tidak diaktifkan, setel event_scheduler variabel sistem untuk mengaktifkan dan memulainya:

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

Demikian pula, atur event_scheduler variabel sistem untuk menonaktifkan atau mematikannya:

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

Sintaks peristiwa

Pernyataan CREATE EVENT membuat acara baru. Ini adalah sintaks dasar dari pernyataan CREATE EVENT:

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

Jika acara tersebut adalah acara satu kali, gunakan:

AT timestamp [+ INTERVAL]

Jika acara tersebut merupakan acara rutin, gunakan:

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

Contoh:

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

Hasil:

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

Berikan hak istimewa

Untuk mengizinkan pengguna membuat, memodifikasi, atau menghapus acara, Anda perlu memberikan hak istimewa:

GRANT EVENT ON (schema) TO (user)

Misalnya, perintah berikut memberikan izin untuk skemamyschema ke pengguna bernama lin@tolvar .

GRANT EVENT ON myuschema TO lin@tolvar

Jika Anda menggunakan tanda bintang (*), Anda memberikan izin ke semua skema.


Linux
  1. Jatuhkan tabel di MySQL

  2. Metode koneksi MySQL

  3. Penjadwal Acara MySQL

  1. Siapkan replikasi sumber-replika MySQL

  2. Menjadwalkan acara reguler:Alternatif Cron/Cron (termasuk Seledri)

  3. Ganti nama basis data MySQL

  1. Instal MariaDB atau MySQL di Linux

  2. Memperbaiki database MySQL InnoDB

  3. Ikhtisar Windows Event Viewer