必须加--no-ui参数,否则后台运行会弹窗卡死;参数顺序为navicat.exe --no-ui --run-plan "计划名" --profile "配置名";计划名需完全匹配UI中显示名称;日志是唯一判断依据。
navicat.exe 调用计划任务必须加 --no-ui 参数
不加这个参数,即使后台运行也会弹出窗口、卡住进程,尤其在 windows 服务或定时任务中直接失败。它不是可选开关,而是无 ui 模式的核心准入条件。
-
--no-ui必须紧接在navicat.exe后面,放在计划名之前,顺序错就无效 - 只对 Windows 有效;macOS/Linux 用
Navicat Premium.app/Contents/MacOS/navicat时默认无界面,但需配合--headless - 如果看到错误
Failed to initialize graphics system,基本就是漏了这个参数
计划名必须严格匹配 Navicat 中显示的全名(含空格和符号)
Navicat 不接受别名、ID 或缩写。计划名是从 UI 里“自动化”列表中一眼看到的那串文字,复制粘贴最安全——多一个空格、少一个括号都会报 Plan not found。
- 中文计划名完全支持,但需确保命令行编码与 Navicat 一致(Windows 建议用 GBK 终端或显式加
chcp 65001) - 带版本号的计划(如
Backup_v2.1)不能简写为Backup - 可通过
navicat.exe --list-plans列出当前所有可识别的计划名(企业版 v16+ 支持)
关键参数组合:--run-plan + --no-ui + --profile
单独跑计划只是第一步,真正稳定执行得绑定配置文件。企业版默认走当前登录用户 profile,但服务环境下常以 SYSTEM 或低权限账户运行,profile 错位会导致连接失败、密码解密异常。
-
--profile后跟的是 Navicat 内部 profile 名(不是文件路径),比如MyWorkProfile,可在“连接”右键属性里看到 - 若省略
--profile,会尝试加载默认 profile,但企业版多用户部署时大概率找不到对应数据库凭据 - 完整调用示例:
navicat.exe --no-ui --run-plan "Nightly Full Backup" --profile "ProdEnv" - 注意:参数间不支持等号,
--profile=ProdEnv会解析失败
日志输出不可见,必须重定向或查 navicat.log
命令行静默运行后,成功与否全靠日志判断。控制台不打印任何信息,连 exit code 都固定返回 0 —— 即使计划根本没启动。
- 日志默认写入
%APPDATA%\PremiumSoft\Navicat\Logs\navicat.log(Windows),每行开头带时间戳和 plan ID - 想捕获实时结果,建议重定向:
navicat.exe --no-ui --run-plan "X" > run.log 2>&1,但仅含启动信息,不包含计划内 SQL 执行细节 - 常见静默失败原因:profile 里连接超时设为 0、SSL 配置不匹配、目标数据库拒绝非交互式连接
计划任务里藏了太多隐式依赖:profile 加载时机、密码缓存状态、甚至本地时区设置都可能让同一条命令在不同机器上表现不一。别信“一次写完到处跑”。










