Navicat定时备份失败的根本原因是Task Scheduler服务未运行,必须启动该服务并设为“自动(延迟启动)”;同时需勾选“不管用户是否登录都要运行”,改用navicatcmd.exe替代navicat.exe,并确保导出脚本时勾选“生成批处理文件”和“使用绝对路径”。
Task Scheduler服务没运行,备份根本不会启动
navicat 16自己不带后台进程,所有“定时”动作都靠 windows 的 task scheduler 服务拉起。服务停了,任务就只是躺在计划库里的静态条目,连尝试执行的机会都没有。
- 按
Win + R输入services.msc回车,找到Task Scheduler - 确认状态是「正在运行」;如果不是,右键 → 「启动」
- 双击该服务,把「启动类型」设为「自动(延迟启动)」,避免系统重启后遗漏
- 如果历史记录里全是空的、或事件查看器中查不到
Microsoft-Windows-TaskScheduler日志,基本就是这个原因
任务属性里没勾选“不管用户是否登录都要运行”
默认新建的任务勾的是「只在用户登录时运行」,一旦锁屏、远程断开、或服务器无人值守,任务就静默跳过——不报错、不写日志、不生成备份文件,只在界面显示“已运行”。
- 打开「任务计划程序」→ 找到你的 Navicat 任务 → 右键「属性」→ 「常规」页
- 必须勾选「不管用户是否登录都要运行」,同时取消勾选「只在用户登录时运行」
- 点击「更改用户或组…」,填入本地账户全名(如
DESKTOP-ABC\user),再输密码 - 别用 Microsoft 账户配任务,凭据链容易断裂;若仍报
0x80070005,说明账户对 Navicat 安装目录或备份路径缺权限
调用的是 navicat.exe 而不是 navicatcmd.exe
navicat.exe 是 GUI 主程序,在无桌面会话下会因强制初始化界面而卡死或静默退出;navicatcmd.exe 才是专为命令行设计的轻量入口,必须用它。
- 在任务「操作」页,「程序或脚本」字段填绝对路径:
"C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe"(注意英文双引号) - 「起始于(可选)」字段必须填同一目录:
C:\Program Files\PremiumSoft\Navicat Premium 16(不能留空,也不能填脚本路径) - 参数示例:
--profile="MyMySQL" --task="DailyBackup",其中profile名要和连接属性里「常规」页的 Profile Name 严格一致 - 别指望 Navicat 安装时注册的防火墙规则——那些只管
navicat.exe,得单独给navicatcmd.exe加出站规则
脚本导出没做或关键项漏填
Navicat 界面里点「启用自动运行」不会真执行,它只生成一个待调度的作业;真正触发备份的是你导出的 .bat 或 .sh 脚本,再交给系统调度器运行。
- 点「自动运行」→「新建批处理作业」→ 添加备份任务后,保存前必须三检:
- ✓ 勾选「生成批处理文件」(否则只存作业,不生成脚本)
- ✓ 勾选「使用绝对路径」(否则备份可能写进
C:\Windows\System32) - ✓ 手动核对「配置文件名」是否与 Navicat 中连接名**完全一致**(含大小写、空格),例如连接名为
prod-mysql-8.0,脚本里就必须是--connection="prod-mysql-8.0"
navicatcmd.exe 能连上数据库、能写入目标路径、能解密保存的密码——这三件事任何一件失败,都不会弹窗报错,只会返回 0x1 或 0xC0000022 然后退出。检查时得去任务计划程序的「历史记录」里翻操作代码,而不是只看 Navicat 界面。


















