MySQL 事件调度器的操作流程
下面的文章主要介绍的是MySQL 事件调度器(Event Scheduler),我们这次试验的事件调度器是在 MySQL 5.1 的环境中进行的,其新增另一个相关功能,可以用来作为一个新的定时任务调度器。 取代部分原先只能用操作系统任务调度器才能完成的定时功能。 一、概述 事
下面的文章主要介绍的是MySQL 事件调度器(Event Scheduler),我们这次试验的事件调度器是在 MySQL 5.1 的环境中进行的,其新增另一个相关功能,可以用来作为一个新的定时任务调度器。
取代部分原先只能用操作系统任务调度器才能完成的定时功能。
一、概述
事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要>求较高的环境下就非常实用了。
事件调度器是定时触发执行的,在这个角度上也可以称作是"临时的触发器"。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。
事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"。启用MySQL 事件调度器后,拥有 SUPER 权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。
<ol class="dp-xml"> <li class="alt"><span><span>(root:localhost:)test</span><span class="tag">></span><span> SET GLOBAL </span><span class="attribute">event_scheduler</span><span> = </span><span class="attribute-value">ON</span><span>; </span></span></li> <li> <span>(root:localhost:)test</span><span class="tag">></span><span> show processlist\G </span> </li> </ol>
4. row
<ol class="dp-xml"> <li class="alt"><span><span>Id: 46147 </span></span></li> <li><span>User: event_scheduler </span></li> <li class="alt"><span>Host: localhost </span></li> <li><span>db: NULL </span></li> <li class="alt"><span>Command: Daemon </span></li> <li><span>Time: 1 </span></li> <li class="alt"><span>State: Waiting on empty queue </span></li> <li><span>Info: NULL </span></li> </ol>
如上,该线程的所有者是 event_scheduler。
二、应用案例
实现MySQL 事件调度器本,案例是利用 event scheduler 的特性,每秒钟调用一次存储过程,用于判断 SLAVE 是否正常运行,如果发现 SLAVE 关闭了,忽略 0 次错误,然后重新启动 SLAVE。
首先创建存储过程
<ol class="dp-xml"> <li class="alt"><span><span>delimiter // </span></span></li> <li><span>create procedure `Slave_Monitor`() </span></li> <li class="alt"><span>begin </span></li> <li><span>SELECT VARIABLE_VALUE INTO @SLAVE_STATUS </span></li> <li class="alt"><span>FROM information_schema.GLOBAL_STATUS </span></li> <li> <span>WHERE </span><span class="attribute">VARIABLE_NAME</span><span>=</span><span class="attribute-value">'SLAVE_RUNNING'</span><span>; </span> </li> <li class="alt"><span>IF ('ON' != @SLAVE_STATUS) THEN </span></li> <li> <span>SET GLOBAL </span><span class="attribute">SQL_SLAVE_SKIP_COUNTER</span><span>=</span><span class="attribute-value">0</span><span>; </span> </li> <li class="alt"><span>SLAVE START; </span></li> <li><span>END IF; </span></li> <li class="alt"><span>end; // </span></li> <li><span>delimiter ; </span></li> </ol>
由于存储过程中无法调用类似 SHOW SLAVE STATUS 这样的语句,因此无法得到确切的复制错误信息和错误代码,不能进一步的处理 SLAVE 停止的各种情况。
接着,创建任务
<ol class="dp-xml"> <li class="alt"><span><span>CREATE EVENT IF NOT EXISTS `Slave_Monitor` </span></span></li> <li><span>ON SCHEDULE EVERY 5 SECOND </span></li> <li class="alt"><span>ON COMPLETION PRESERVE </span></li> <li><span>DO </span></li> <li class="alt"><span>CALL Slave_Monitor(); </span></li> </ol>
创建了一个任务,每 5秒钟 执行一次,任务结束后依旧保留该任务,而不是删除。当然了,在本例中的任务不会结束,除非将它手动禁止了。
如果在运行中想要临时关闭一下某个任务,执行 ALTER EVENT 语句即可:
<ol class="dp-xml"> <li class="alt"><span><span>(root:localhost:)test</span><span class="tag">></span><span> alter event `Slave_Monitor` ON </span></span></li> <li><span>COMPLETION PRESERVE DISABLE; </span></li> <li class="alt"> <span>(root:localhost:)test</span><span class="tag">></span><span> alter event `Slave_Monitor` ON </span> </li> <li><span>COMPLETION PRESERVE ENABLE; </span></li> </ol>
以上的相关内容就是对MySQL 事件调度器的介绍,望你能有所收获。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

Durch das Kopieren einer Tabelle in MySQL müssen neue Tabellen erstellt, Daten eingefügt, Fremdschlüssel festgelegt, Indizes, Auslöser, gespeicherte Verfahren und Funktionen kopiert werden. Zu den spezifischen Schritten gehören: Erstellen einer neuen Tabelle mit derselben Struktur. Fügen Sie Daten aus der ursprünglichen Tabelle in eine neue Tabelle ein. Legen Sie die gleiche fremde Schlüsselbeschränkung fest (wenn die Originaltabelle eine hat). Erstellen Sie den gleichen Index. Erstellen Sie denselben Auslöser (wenn die ursprüngliche Tabelle eine hat). Erstellen Sie dieselbe gespeicherte Prozedur oder Funktion (wenn die ursprüngliche Tabelle verwendet wird).

Zeigen Sie die MySQL -Datenbank mit dem folgenden Befehl an: Verbindung zum Server: MySQL -U -Benutzername -P -Kennwort ausführen STEILE -Datenbanken; Befehl zum Abrufen aller vorhandenen Datenbanken auswählen Datenbank: Verwenden Sie den Datenbanknamen. Tabelle Ansicht: Tabellen anzeigen; Tabellenstruktur anzeigen: Beschreiben Sie den Tabellennamen; Daten anzeigen: Wählen Sie * aus Tabellenname;

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

Kopieren und einfügen in MySQL die folgenden Schritte: Wählen Sie die Daten aus, kopieren Sie mit Strg C (Windows) oder CMD C (MAC). Klicken Sie mit der rechten Maustaste auf den Zielort, wählen Sie ein Einfügen oder verwenden Sie Strg V (Windows) oder CMD V (MAC). Die kopierten Daten werden in den Zielort eingefügt oder ersetzen vorhandene Daten (je nachdem, ob die Daten bereits am Zielort vorhanden sind).

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).
