mysql计划事件

mysql计划事件启动及mysql服务启动

最近写了一个定时更新的事件,在保存的时候报“事件计划已关闭,事件只能在服务器启动并开启事件计划时才能处理”,解决方法如下:

  • 1.先查看mysql计划事件的状态:

    SHOW VARIABLES LIKE 'event_scheduler'

    如果value值为ON则表示开启状态,OFF则位关闭。

  • 2.开启计划事件的指令的四种方法为:

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

    关闭则是将语句中的ON改成OFF,1改成0。

查询表的时候报“Can’t connect to MySQL server on ‘localhost’ (10061)”,是mysql服务器没有启动,下面两种方式都可以启动:

  • 以管理员身份在dos下进入mysql的bin目录下:D:\mysql-5.7.16-winx64\bin,执行net start MySQL启动进程,关闭服务执行net stop MySQL。
  • 右键我的电脑到管理中找到mysql进程,右键选择启动或者直接点击左边的启动来启动进程。

*计划事件的时间设置

    SELECT NOW(),CURDATE(),CURTIME()
    返回2017-06-20 16:37:57,2017-06-20,16:37:57


    --每个月的21号凌晨1 点执行计划事件 (里面的日期只能用减号拼出来,要是用加号指定日期会随每月天数的不同而变化)
    CREATE EVENT EVENT2   
    ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-21 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR) 
    ON COMPLETION PRESERVE ENABLE 
    DO 
      BEGIN
        CALL events(); 
      END

事件是一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行

提醒:虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑。或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可。

*还有mysql服务老是自动关闭的问题,解决方法:

我的电脑-右击-管理-服务-找到mysql服务 双击新窗口中 -》恢复 -》 第一次失败设置为 重新启动服务

下面重置失败计数 设置为0天 重新启动服务 设置0分钟

http://blog.csdn.net/XDSXHDYY/article/details/73800861

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值