zoukankan      html  css  js  c++  java
  • mysql数据库事件

    今天在测试一个存储过程和数据库事件,就是到某一个固定时间,数据库自动调用一个存储过程实现一些功能。

    单独来看事件是没有问题的

    CREATE DEFINER=`root`@`localhost` EVENT `e_renewClueCycle` ON SCHEDULE EVERY 1 MINUTE STARTS '2015-12-09 02:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN
    CALL `renewClueCycle`();
    END

    后来又手动call了一下存储过程`renewClueCycle`(),也没有问题,达到了预期的功能。

    问题出在到了这个时间,数据库没有执行这个存储过程,后来百度了一下,终于找到了原因,mysql数据库有一个控制变量event_scheduler,这个变量值为ON时,数据库的事件才能生效。

    用sql语句查看这个变量值

    SHOW GLOBAL VARIABLES LIKE 'event_scheduler';

    如果查询得到的value值为OFF,就表示这个功能没有打开,可以执行一下下面的语句来开启

    SET GLOBAL event_scheduler = ON;
    SET @@global.event_scheduler = ON;
    SET GLOBAL event_scheduler = 1;
    SET @@global.event_scheduler = 1;

    相反,如果想关闭这个功能的话,就执行下面的语句

    SET GLOBAL event_scheduler = OFF;
    SET @@global.event_scheduler = OFF;
    SET GLOBAL event_scheduler = 0;
    SET @@global.event_scheduler = 0;

    这个并不是什么技术问题,只是对没怎么接触过mysql的人来说可能不知道这个变量的存在

  • 相关阅读:
    Swift3.0_注释,警告,todo的写法
    linux下如何实现mysql数据库定时自动备份
    Weblogic 12c 集群环境搭建
    Weblogic 10.3.6.0 集群搭建
    VMware下Centos6.4安装
    Linux下安装maven和nexus
    hbase查询语法
    笔记本WiFi共享
    CentOS6.4安装JDK,卸载自带的OpenJDK
    Mysql设置允许外网访问
  • 原文地址:https://www.cnblogs.com/quyixuanblog/p/5265943.html
Copyright © 2011-2022 走看看