mysql使用Navicat创建定时执行任务

使用Navicat创建定时执行任务:

1. 准备需要定时执行的sql脚本:

  如定时更新时间:

  update your_table y set y.update_time = NOW() where y.id = '123';

2. 创建函数:

  ① 进入navicat找到函数选择新建函数,填写名称并选中"过程"后点击确定。

  

② 点击确定后会进入函数定义页面:

③ 在begin和end之间写要执行的sql语句并保存 eg:

3.创建事件:

 ① 在定义里写 call + 上面定义的函数名 eg:

 ② 在定义选项里定义执行时间范围(下面的是从STARTS的时间开始执行,到ENDS时间结束,每10秒执行一次)eg:

 ③ 在计划页面下面可以查看上次运行时间,按ctrl + S 可以刷新时间。

 这样就完成了mysql的定时任务的创建。

任务部署好后如果不执行,排查上述步骤是否做的正确,可能遇到的问题:

1. 无法创建函数,创建函数报错时执行如下语句:

  set global log_bin_trust_function_creators=TRUE;

 2. 定时任务不执行解决:

  ① 查看定时执行是否打开:

    show VARIABLES like 'event_scheduler'

    如果是"ON"则是可以执行定时任务,如果是"OFF"代表关闭,

    执行下面语句打开定时任务:

       set GLOBAL event_scheduler = ON

   ② 定时任务状态为disable:

    制定好定时任务后可以执行下面语句查看任务状态:

    SHOW EVENTS

     如果Status显示disable,则代表定时任务不能执行,可以执行下面语句修改为enabled可执行状态 (其中yourName写的是你的定时任务的名称):

     ALTER EVENT yourName ON COMPLETION PRESERVE ENABLE;

     或者通过定义界面修改状态为可执行:

    

 如果经过上面问题的排查和问题的修改后还是不能执行定时任务,可以尝试单独执行函数,查看函数是否正确,其次可以把之前定义的函数和事件全部删除重新创建,应该就能正常执行了。

posted @ 2024-08-15 15:22  sensen~||^_^|||&  阅读(918)  评论(0编辑  收藏  举报