博主

3天前在线

𝙼𝚛.𝙶𝚞
枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯。( 元·马致远·天净沙·秋思)
博主 𝙼𝚛.𝙶𝚞
博主 3天前 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 4 人

网站已运行 10 天 1 小时 31 分

Powered by Typecho & Sunny

5 online · 67 ms

Title

数据库关键字定时替换配置

guboysky

·

Article

创建定时事件

本配置将创建两个定时事件,一个将"api"替换为"brr",另一个将"brr"替换为"api",实现关键字的定时轮换。

1、 编辑MySQL配置文件,启用事件调度器:

  • 文件名:my.cnf
  • 路径:/yes/1panel/apps/mariadb/mariadb/conf/my.cnf

在配置文件 my.cnf 中添加以下内容:

♾️ text 代码:
socket = /run/mysqld/mysqld.sock
event_scheduler=ON

2、 修改配置文件后,需要重启数据库服务使配置生效:

♾️ text 代码:
systemctl restart mysql

♾️ text 代码:
systemctl restart mariadb

在MySQL中执行以下SQL脚本,创建两个定时事件:

♾️ text 代码:
USE bbsxpvip;

DELIMITER $$

DROP EVENT IF EXISTS evt_api_to_bbr$$
CREATE EVENT evt_api_to_bbr
ON SCHEDULE
  EVERY 1 DAY
  STARTS TIMESTAMP('2025-11-12 13:00:00')
ON COMPLETION PRESERVE
ENABLE
DO
BEGIN
  UPDATE bbs_post SET message = REPLACE(message,'api','brr') WHERE message LIKE '%api%';
  UPDATE bbs_post SET message_fmt = REPLACE(message_fmt,'api','brr') WHERE message_fmt LIKE '%api%';
END$$

DROP EVENT IF EXISTS evt_bbr_to_api$$
CREATE EVENT evt_bbr_to_api
ON SCHEDULE
  EVERY 1 DAY
  STARTS TIMESTAMP('2025-11-11 08:30:00')
ON COMPLETION PRESERVE
ENABLE
DO
BEGIN
  UPDATE bbs_post SET message = REPLACE(message,'brr','api') WHERE message LIKE '%brr%';
  UPDATE bbs_post SET message_fmt = REPLACE(message_fmt,'brr','api') WHERE message_fmt LIKE '%brr%';
END$$

DELIMITER ;

-- 检查事件是否创建成功
SHOW EVENTS;

这个脚本创建了两个事件:

  • evt_api_to_bbr:每天13:00将"api"替换为"brr"
  • evt_bbr_to_api:每天08:30将"brr"替换为"api"

主要:把脚本bbsxpvip 替换你的数据库名


执行以下SQL语句检查事件调度器是否已启用:

♾️ text 代码:
SHOW VARIABLES LIKE 'event_scheduler';

预期结果:

Variable_nameValue
event_schedulerON

检查事件状态,执行以下SQL语句检查事件是否已创建:

♾️ text 代码:
SHOW EVENTS;

应该能看到两个事件:evt_api_to_bbrevt_bbr_to_api


事件参数说明:

参数说明
ON SCHEDULE EVERY 1 DAY每天执行一次
STARTS TIMESTAMP('...')`事件开始执行的时间
ON COMPLETION PRESERVE`事件完成后保留事件定义
ENABLE启用事件

替换逻辑说明:

事件执行时间操作
evt_api_to_bbr每天13:00将"api"替换为"brr"
evt_bbr_to_api每天08:30将"brr"替换为"api"

常见问题

1、事件调度器未启用

如果SHOW VARIABLES LIKE 'event_scheduler'显示为OFF:

  • 检查配置文件是否正确添加了event_scheduler=ON
  • 确认已重启数据库服务
  • 尝试在MySQL中直接启用:SET GLOBAL event_scheduler = ON;

2、如果事件创建成功但未执行:

  • 检查事件状态:SHOW EVENTS;
  • 确认事件是否启用:状态应为ENABLED
  • 检查MySQL错误日志

3、权限问题,创建事件需要EVENT权限:

♾️ text 代码:
GRANT EVENT ON database_name.* TO 'username'@'host';
现在已有 27 次阅读,0 条评论,0 人点赞
Author:guboysky
作者
数据库关键字定时替换配置
当前文章累计共 2442 字,阅读大概需要 1 分钟。
一键虚拟化PVE项目指南
2025年12月5日 · 0评论
2025年12月7日 · 0评论
HH
2025年12月7日 · 0评论
Comment:共0条
发表
搜索 消息 足迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主
未知作品 歌曲封面
博主 立即安装
前往评论 切换字号