欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql如何做計劃任務

錢艷冰1年前9瀏覽0評論

MySQL是目前使用非常廣泛的一款數據庫管理系統,其功能強大,性能穩定,適用于大型企業應用系統。除了作為數據存儲的工具,MySQL還可以通過編寫計劃任務來定時執行一些操作,例如備份數據、定期清理垃圾數據等。

MySQL支持兩種方法來定時執行計劃任務:

1. 腳本計劃任務
2. 事件調度器

下面分別詳細介紹這兩種方法的步驟。

1. 腳本計劃任務

#!/bin/bash
# backup.sh
# export data
DB_HOST="localhost"
DB_USER="root"
DB_PASS="password"
DB_NAME="db_name"
DATE=$(date +%d-%m-%Y_%H:%M:%S)
DEST="/var/backups/mysql"
mkdir -p "$DEST"
# dump database
echo "Back up the database ${DB_NAME}..."
mysqldump --host="$DB_HOST" --user="$DB_USER" --password="$DB_PASS" --single-transaction --routines "$DB_NAME" | gzip >"$DEST/${DB_NAME}_${DATE}.gz"
echo "Done!"

保存腳本并添加執行權限:

chmod +x /path/to/backup.sh

添加計劃任務,打開終端并輸入:

crontab -e

在打開的文件中,添加下面一行:

0 0 * * * /path/to/backup.sh >/dev/null 2>&1

此行的意思是,在每天的0點0分備份數據庫,將日志輸出到/dev/null,即不輸出日志。

2. 事件調度器

MySQL的事件調度器是一種內置工具,可以用來在特定時間或特定時間間隔內執行指定的SQL語句或程序。

首先,需要開啟事件調度器:

SET GLOBAL event_scheduler = ON;

創建事件:

CREATE EVENT event_name
ON SCHEDULE EVERY 1 DAY
DO
BEGIN
DELETE FROM table_name WHERE date< DATE_SUB(NOW(), INTERVAL 30 DAY);
END

這個事件的名稱為 "event_name",每隔一天執行一次,刪除"table_name"表中日期小于30天前的記錄。

刪除事件:

DROP EVENT event_name;

固定時間執行事件:

CREATE EVENT event_name
ON SCHEDULE AT '2022-07-11 23:50:00'
DO
BEGIN
INSERT INTO table_name (id, name, age) VALUES (1, 'John Doe', 30);
END

這個事件的名稱為 "event_name",在指定的日期和時間點執行,插入一條記錄到“table_name”表中。

通過這兩種方法,我們可以輕松地實現MySQL的計劃任務。