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 failed to open table mysql.event
docker中mysql遇到密码失效.html
mysql event脚本
mysql event scheduler 使用详解,含全局设置、创建event、修改event、删除event及相应的example,测试环境 mysql ver 14.14 distrib 5.7.26
本篇文章是对mysql中event的用法进行了详细的分析介绍,需要的朋友参考下
自己整理有关MySQL的索引失效相关的信息,重点在组合索引的失效,有兴趣可以看看,看看是否对你有些许帮助
Event即事件,也是一种数据库对象,又叫时间触发器或者事件调度器,与triggers的事件触发不同,tiggers会因为update、delete、insert等事件触发,而event类似与linux crontab计划任务,用于时间触发,当到了设定执行...
本文只介绍Innodb引擎下的索引失效情况。 -- 创建测试表 DROP TABLE IF EXISTS `test_idx`; CREATE TABLE `test_idx` ( `id` int(11) NOT NULL AUTO_INCREMENT, `unique_idx` int(11) NOT NULL, `notnull_idx` ...
其实这个错误按字面意思就是不能打开mysql.event表,那么就是权限问题导致的。一般mysql也无法运行。 在 本地计算机 无法启动 MySQL 服务。错误 1067: 进程意外终止。 mysql 安装改变数据库路径出现的问题解决方法 ...
MySQL数据库索引失效的10种场景.zip
mysql 索引失效详解
mysql-实用-索引失效和优化原则
比如,如果索引列是"timestamp"类型,但查询条件中使用了函数对该列进行了处理,索引可能失效。 表达式和函数的使用:当查询中使用了大量表达式或函数来处理列时,MySQL可能无法使用索引。这是因为MySQL只能在索引...
主要给大家介绍了关于导致MySQL索引失效的一些常见写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
mysql索引失效测试数据
MySQL 5.7 中文文档 MySQL 5.7 中文文档 MySQL 5.7 中文文档
(1).每天凌晨12点对数据库进行定时备份,结算和汇总 (2).每天凌晨2点删除数据库前三天的数据 (3).插入某个数据超过一定时间改变某个值的状态,比如预警系
所以笔者绝对再整理一遍MySQL中索引失效的常见场景,并分析其中的原由供大家参考。 当然请记住,explain是一个好习惯! MySQL索引失效的常见场景 在验证下面的场景时,请准备足够多的数据量,因为数据量少时,...
MySQL中的事件调度器,EVENT,也叫定时任务,类似于Unix crontab或Windows任务调度程序。 EVENT由其名称和所在的schema唯一标识。 EVENT根据计划执行特定操作。操作由SQL语句组成,语句可以是BEGIN…END语句块。...