`

mysql中event失效的情况

阅读更多

mysql 的定时触发的event建好后没有发生预定的事件,归纳起来有以下几种:

1.全局的event 是关闭的:

  实际上mysql的event默认值是off

  查看event是否开启: show variables like 'event_scheduler';

   将event事件计划开启: set global event_scheduler=1;

有时候event运行一段时间,电脑重启后,event失效了。在生产环境这种事是不允许发生的

怎么办?

--------系统重启后,event自动关闭的解决方法-----------------
my.ini(windows) or my.cnf(linux) 中的
[mysqld]
添加 event_scheduler=ON

 

 

2.用户权限的修改导致event失效,

这种情况很少发生,但发生后又找不到问题,那就看看你建的event所属者有没有这个执行权限吧

如: DEFINER=`root`@`127.0.0.1`

    select * from mysql.user where Host='127.0.0.1'

查看127.0.0.1这个ip有没有执行的权限

 

3.event 设成了DISABLE; 这种情况

这里以test_event为例:

关闭事件任务: alter event test_event ON COMPLETION PRESERVE DISABLE;
开户事件任务: alter event test_event ON COMPLETION PRESERVE ENABLE;

查看所有 event:  SHOW EVENTS;

或者  select * from information_schema.EVENTS;

 

 

======================================

简单的测试例子:

-- 建表

DROP table IF EXISTS `tab1`;
create table tab1(
tab1_id varchar(20) default '',
insert_time datetime default 0,
num int default 0
);

insert into tab1 values('abc',now(),0);

 

-- 创建存储过程

drop procedure IF EXISTS testcount;
DELIMITER $$
CREATE  PROCEDURE `testCount`()
BEGIN
DECLARE  num1 integer default 0;
   select num into num1 FROM tab1 WHERE tab1_id='abc';
if num1<50 then
     UPDATE tab1 SET NUM=NUM+1 WHERE tab1_id='abc';
end if;
END$$
DELIMITER ;

 

 

 

 

-- 创建 定时执行事件

CREATE EVENT if not exists e_test
          on schedule every 1 minute
          on completion preserve
     do call testCount();

 

 

分享到:
评论

相关推荐

    mysql定时删除过期数据记录的简单方法

    1. 连接登录MySQL后,先查看MySQL是否开启了事件功能: 命令:show variables like ‘%sc%’;...在my.cnf中的[mysqld]部分添加如下内容,然后重启mysql(mysql重启命令:service mysqld restart) event_scheduler=ON

    MYSQL定时清除备份数据的具体操作

    总的来说,MySQL的Event Scheduler功能提供了一种在数据库级别执行定时任务的方法,这既方便又安全,特别适合用于清理和维护数据库中的数据。通过合理配置和使用存储过程,可以实现各种复杂的数据库清理策略。

    MySQL军规升级版

    【MySQL军规升级版】是针对并发量大、数据量大的互联网业务的数据库管理规则集。以下是基于这些规则的详细解读: 1. **基础规范**: - **表存储引擎**:必须使用InnoDB,因为它支持事务处理和行级锁定,更适合高...

    基于python的mysql复制工具详解

    Python-mysql-replication是一个Python实现的MySQL复制协议工具,它允许我们解析binlog(二进制日志)以获取数据库中的INSERT、UPDATE、DELETE等事件,并根据这些事件进行各种业务处理。这个工具对于监控数据变更、...

    藏经阁-Improving HBase reliability at Pinterest with geo-­‐replicat

    1. Maxwell:Maxwell是一个MySQL到HBase的数据同步工具,用于将MySQL中的数据同步到HBase中。 2. Kafka:Kafka是一个消息队列系统,用于处理HBase中的数据变更事件。 3. Cache Invalidation Service:Cache ...

    2021-2022计算机二级等级考试试题及答案No.9474.docx

    9. SHOW INDEX不是创建索引的语句,在MySQL中,CREATE INDEX或ALTER TABLE常用于创建索引。 10. JSP引入JavaBean,正确的方式是使用标签,选项C符合规范。 11. 内存储器的存储容量通常小于硬盘,但访问速度远快于...

    案例实战-高并发业务的多级缓存架构一致性解决方案

    4. **失效策略(Cache Invalidation)**:当数据更新时,立即或在一段时间后使缓存中的旧数据失效。常见的失效策略有时间戳、版本号和CAS(Compare and Swap)。 5. **事件驱动(Event-Driven)**:例如使用发布/...

    2021-2022计算机二级等级考试试题及答案No.4359.docx

    2. **MySQL 删除事件**:在MySQL数据库中,删除已经创建的事件(Scheduled Events)使用`DROP EVENT`语句,如题目所示的`DROP EVENT [event_name]`。 3. **Java 异常处理**:Java中的异常处理使用try-catch-finally...

    2021-2022计算机二级等级考试试题及答案No.13548.docx

    23. **MySQL 中的 NULL**:NULL 在MySQL中表示无值或未知,不同于空字符串或数值0。 24. **宏替换与程序输出**:程序中的`#define M(x,y,z) x*y+z`定义了一个宏,然后`M(a+b,c,d)`会被替换为`(a+b)*(c)+d`,计算后...

    2021-2022计算机二级等级考试试题及答案No.2219.docx

    默认情况下,Session 对象的超时时限为 **20分钟**,这意味着如果没有新的活动发生,Session 将会在20分钟后失效。 ### 4. 抽象类的定义 包含抽象方法的类必须被声明为 **抽象类**。抽象类不能被实例化,其主要目的...

    2021-2022计算机二级等级考试试题及答案No.11110.docx

    17. **删除MySQL事件**:要删除MySQL数据库中的事件,通常使用的语句是A,即`DROP EVENT`。这是删除数据库事件的标准SQL命令。 #### 计算机网络可靠性指标 18. **计算机网络可靠性指标**:在计算机网络中,表征数据...

    imi协程开发框架-PHP

    camel 设为 false 失效问题修复关联模型问题修复模型查询后的序列化问题修复因心跳导致的,偶现连接跨协程使用问题修复在用户进程中,向客户端推送数据有警告的问题修复生成用注释表示的方法时,默认值中有数组时的...

    Java工程师技能图谱.pdf

    8. 缓存技术:包括缓存的应用场景,缓存加载策略与失效策略,缓存与数据库同步等,以及缓存预热、缓存失效、缓存击穿、缓存雪崩、多级缓存、缓存与Spring+ORM框架集成等。 9. 消息队列技术:需要掌握消息队列的基本...

Global site tag (gtag.js) - Google Analytics