Navicat 17 不支持内置定时任务,必须通过外部调度器执行已保存的 .nq 查询和 .njob 批处理作业;需先保存统计 SQL 为 daily_access_summary.nq,再创建串联查询与导出的 access_daily_report.njob,最后由 Windows 任务计划程序或 cron 调用 navicat.exe --run-job 触发。

Navicat 17 没有内置「定时任务」界面,统计必须靠外部调度
Navicat 17 已彻底移除「计划任务」菜单和图形化定时配置入口。所谓“自动运行”按钮(齿轮+播放图标)只是手动触发批处理作业的开关,不带时间控制能力。所有按天执行的统计任务,必须拆解为两部分:一是生成可复用的统计查询或导出作业,二是交由 Windows 任务计划程序 或 cron 调用。
先保存一个带统计逻辑的 .nq 查询文件
你要的“数据库访问与修改统计”,本质是 SQL 查询结果。Navicat 17 不允许直接对未保存的查询做定时调用,必须固化为 .nq 文件:
- 新建查询 → 写统计 SQL(例如查
information_schema.PROCESSLIST历史连接数、或聚合mysql.general_log中的 SELECT/UPDATE 频次) -
Ctrl+S保存,文件名不能含空格或中文,比如daily_access_summary.nq - 路径必须是绝对路径,且 Navicat 启动时能读取到——推荐放在
%APPDATA%\PremiumSoft\Navicat Premium 17\Queries\下 - 如果统计依赖实时日志表,确认该表已开启(如
SET GLOBAL general_log = ON),否则查出来永远是空
再用批处理作业串联查询 + 导出
单有 .nq 还不够,要落地成 CSV 或 Excel 才算“生成统计”。这需要批处理作业(.njob)把查询和导出串起来:
- 打开「批处理作业」→ 左侧「可用的工作」里拖入
daily_access_summary.nq - 再拖入一个导出任务:走「导出向导」→ 选中该查询结果 → 目标格式选 CSV → 「目标文件」填死绝对路径,比如
C:\stats\access_20260907.csv - 关键:顺序不能错——必须先拖查询,再拖导出;反过来会导出空文件且不报错
- 最后点「保存为批处理作业」,生成
access_daily_report.njob
最后交给操作系统定时执行
Navicat 本身不解析 cron 或计划时间,只能靠外部调度器驱动 navicat.exe --run-job:
- Windows:用「任务计划程序」新建基本任务,触发器设为每天指定时间,操作设为「启动程序」→ 程序填
navicat.exe路径,参数填--run-job "C:\jobs\access_daily_report.njob" - Linux/macOS:在
crontab -e里加一行0 2 * * * /path/to/navicat --run-job "/path/to/access_daily_report.njob" - 注意:导出路径不支持
%DATE%这类变量,想实现带日期的文件名,得在调度器里用 shell 脚本动态生成新.njob或改名.nexp,再传给 Navicat - 权限别漏:Windows 上务必勾选「使用最高权限运行」,否则可能因 UAC 拦截导致任务静默失败
真正容易被忽略的是日志表权限和路径硬编码——查不到数据不是 SQL 写错,大概率是 general_log 表没开,或者导出路径写了相对地址被 Navicat 自动 fallback 到默认目录。


















