Navicat计划任务未执行,首要确认Task Scheduler服务是否正在运行并设为自动(延迟启动);其次勾选“不管用户是否登录都要运行”,使用navicatcmd.exe替代navicat.exe,且“起始于”字段须填其所在绝对路径,参数中profile名与task名须严格匹配。
Task Scheduler服务没在运行,任务根本不会触发
navicat自身不带后台守护进程,所有定时任务都依赖windows系统级的task scheduler服务来唤醒和执行。它一停,任务就彻底静默——连日志都不会写。
常见错误现象:0x41301(任务已注册但未启动)、事件查看器里查不到任何调度记录、手动右键“运行”能成功但定时就是不动。
- 按
Win + R输入services.msc回车,找到Task Scheduler - 确认「状态」是「正在运行」;若不是,右键→「启动」
- 双击该服务→「启动类型」改为「自动(延迟启动)」→点「确定」
任务属性里没勾选“不管用户是否登录都要运行”
默认新建任务勾选的是「只在用户登录时运行」,一旦锁屏、远程桌面断开、或切换用户会话,任务就直接跳过,不报错也不留痕迹。
这个选项必须显式开启,且要配合凭据配置才有效。
- 打开「任务计划程序」→找到你的 Navicat 任务→右键→「属性」→「常规」页
- 勾选「不管用户是否登录都要运行」
- 取消勾选「只在用户登录时运行」(二者互斥)
- 点击「更改用户或组…」,填入本地账户全名(如
DESKTOP-ABC\user),并重新输入密码 - 若仍报
0x80070005,说明该账户对 Navicat 安装目录或导出路径缺少 NTFS 权限
用navicat.exe触发任务,无桌面会话时必然失败
Navicat 16 的 GUI 主程序在无交互会话下会卡死在初始化界面,导致任务返回0x1或直接退出。必须改用专为命令行设计的navicatcmd.exe。
- 「操作」页中「程序或脚本」填绝对路径:
"C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe" - 「起始于(可选)」字段必须填同一目录:
C:\Program Files\PremiumSoft\Navicat Premium 16 - 参数格式严格:例如
--profile="MyMySQL" --task="NightlyExport",其中profile名要和连接属性「常规」页里的 Profile Name 完全一致 - 漏填「起始于」会导致配置文件读取失败、相对路径解析错乱
MySQL服务端导出被secure_file_priv拦截
如果任务里用了SELECT ... INTO OUTFILE,而 MySQL 没放开写入权限,就会报ERROR 1290 (HY000)。这不是 Navicat 的问题,是 MySQL 服务端强制限制。
强行设secure_file_priv=''有安全风险,更稳妥的做法是绕过服务端导出逻辑。
- 在 Navicat 计划任务编辑页,导出类型选「导出为文件」(即客户端导出),不要选「导出到服务器」
- 确保导出路径是绝对路径,且父目录已手动创建(服务进程不会自动建多级目录)
- 检查目标文件夹的 NTFS 权限,确认
NT SERVICE\NavicatSchedulerService有「写入」和「修改」权限
Task Scheduler服务和navicatcmd.exe这两层基础设施——它们不出问题时你感觉不到存在,一出问题,所有上层配置都白搭。


















