必须勾选“不管用户是否登录都要运行”,否则锁屏或注销后任务静默跳过;需改用navicatcmd.exe替代navicat.exe,确保Task Scheduler服务正在运行,并在非交互式环境下解决数据库密码认证问题。
必须勾选“不管用户是否登录都要运行”
navicat 自身没有后台服务,它的计划任务完全依赖 windows 任务计划程序(task scheduler)拉起进程。默认新建的任务勾选的是「只在用户登录时运行」,一旦你锁屏、远程桌面断开、注销或系统进入无交互会话,任务就静默跳过——连日志都不会生成。这是最常被忽略的开关,也是用户退出后任务停摆的直接原因。
操作路径:任务计划程序 → 找到你的 Navicat 任务 → 右键「属性」→ 「常规」页 → 必须同时满足以下三点:
- 勾选「不管用户是否登录都要运行」
- 取消勾选「只在用户登录时运行」(二者互斥)
- 点击「更改用户或组…」,填入当前 Windows 账户全名(如
DESKTOP-ABC\user),再输入密码
改用 navicatcmd.exe 替代 navicat.exe
用 navicat.exe 启动 GUI 程序时,若在无桌面会话下运行(如服务会话、锁屏后),它会尝试初始化图形界面并卡死或静默退出。而 navicatcmd.exe 是 Navicat 16 专为命令行场景设计的轻量入口,不依赖 GUI 上下文,能稳定在后台会话中完成导出、备份、同步等动作。
在任务计划程序的「操作」设置中:
- 「程序或脚本」填完整路径,例如:
C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe - 「起始于(可选)」字段必须填该目录绝对路径(
C:\Program Files\PremiumSoft\Navicat Premium 16\),否则可能因工作目录缺失导致配置文件读取失败 - 参数栏写:
--batch-job="daily_backup"(注意英文双引号,且名称与 Navicat 中保存的批处理作业名完全一致)
确保 Task Scheduler 服务正在运行
即使所有任务配置都正确,如果底层 Task Scheduler 服务没启动,任务根本不会被触发。手动右键「运行」能成功,不代表定时能跑——因为手动执行绕过了调度器逻辑。
检查方法:
- 按
Win + R,输入services.msc回车 - 找到
Task Scheduler,确认「状态」为「正在运行」,「启动类型」为「自动(延迟启动)」 - 若状态是「已停止」,右键 → 「启动」;若启动类型非自动,双击修改并「确定」
重启服务后,建议等待 10 秒再操作任务属性,避免初始化未完成导致凭据写入失败。
连接密码不能依赖 GUI 保存机制
当任务以非交互式上下文运行(如服务会话),Windows Credential Manager 无法解密 Navicat GUI 中保存的数据库密码,会导致认证失败,错误通常表现为 Authentication failed 或连接超时,但任务历史记录里只显示 0xC0000022 或空转结束。
解决方式只有两种:
- 改用免密认证:如数据库开启 IP 白名单 +
mysql_native_password认证,或通过 SSH 隧道转发连接 - 在批处理作业 XML 或 NCX 文件中显式传参(不推荐明文密码,仅限测试环境)
另外,navicatcmd.exe 不读取 GUI 的连接配置缓存,它只认你在批处理作业中固化好的连接参数——所以务必在 Navicat 中先测试导出/备份成功,再保存为 .njb 或 .ncx 文件。


















