Navicat命令行本身不调度,只执行;真正实现“精准调度”的是Windows任务计划程序。必须用navicatcmd.exe而非navicat.exe,正确配置触发器重复间隔、起始于路径、权限及历史记录,否则90%问题源于此。

Navicat 命令行本身不调度,只执行;真正实现“精准调度”的是 Windows 任务计划程序(taskschd.msc),Navicat CLI 只负责在被唤起的那一刻完成一次确定动作。所有所谓“不准时”“漏跑”“静默失败”,90% 都出在任务计划配置环节,而非 Navicat 参数写错。
必须用 navicatcmd.exe 而非 navicat.exe 启动无桌面会话
GUI 版 navicat.exe 在“不管用户是否登录都要运行”模式下会卡死在初始化界面(等待 GUI 线程或 DCOM 组件),根本不会解析参数。只有 navicatcmd.exe 是专为无交互场景编译的轻量入口。
-
navicatcmd.exe不加载 UI、不弹窗、不依赖桌面会话,返回码明确(0=成功,非0=失败) - 路径含空格必须加英文双引号:
"C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe" - 若调用
navicat.exe出现 0xc000007b 或长时间无响应,基本可判定是误用了 GUI 主程序
触发器里设“重复间隔”必须手动编辑,不能只靠向导
Windows 任务计划向导默认创建的是单次触发,即使你选了“每天”,它也不会自动开启“每小时重复”。高频调度(如每小时、每15分钟)必须进高级设置手动勾选并配置。
- 创建后双击任务 →「触发器」→「编辑」→ 勾选「重复任务间隔」,设为「1小时」,持续时间选「无限期」
- 务必取消勾选「停止任务如果运行超过以下时间」,否则备份/同步中途超时会被强制终止(常见于大表导出)
- 起始时间建议设为整点(如 2026-09-07 13:00),避免因系统时间微偏导致首次触发延迟
“起始于(可选)” 字段填错 = 所有相对路径失效
Windows 任务计划不会继承当前 shell 的工作目录,navicatcmd.exe 启动时的默认 cwd 是 C:\Windows\System32。如果你的参数里写了 --output="./backups/" 或 --profile="MyProfile"(而 profile 文件不在系统默认路径),就会静默失败。
-
“起始于(可选)”必须填 Navicat 安装目录的绝对路径,例如:C:\Program Files\PremiumSoft\Navicat Premium 16 - 不能留空,不能填脚本路径,不能填备份目录——它只影响
cd行为,不是输出根目录 - profile 名必须与 Navicat 连接属性「常规」页中填写的
Profile Name完全一致(区分大小写)
权限和凭据配置错误直接导致 0x80070005 或 0x1
不勾选关键权限项,任务会以受限上下文运行,连读取自身配置文件都失败,更别说写入备份目录。
- 任务属性 →「常规」页 → 勾选「不管用户是否登录都要运行」+「使用最高权限运行」
- 点击「更改用户或组…」,输入当前 Windows 账户全名(如
DESKTOP-ABC\user),再输密码(Microsoft 账户易断链,不用) - 若仍报错 0x80070005,请检查该账户对 Navicat 安装目录和备份目标路径是否有 NTFS 写入权限(右键 → 属性 → 安全 → 编辑)
最常被跳过的细节是:任务计划里的「历史记录」默认关闭,一旦失败,你既看不到日志,也查不到错误码。务必在任务属性 →「历史记录」页勾选「启用此任务的历史记录」,后续排查全靠它。另外,navicatcmd.exe 的参数顺序无关紧要,但每个值带空格必须用英文双引号包裹——少一个引号,整个命令就变成无效字符串。


















