Navicat 16 的「自动运行」不是调度器,仅保存作业;必须导出为.bat/.sh脚本,并交由Windows任务计划或cron执行。导出时须勾选“生成批处理文件”和“使用绝对路径”,且配置文件名须与连接名完全一致。
Navicat 16 的「自动运行」不是计划任务调度器
它不启动后台服务,也不注册到 windows 任务计划程序或 linux cron —— 这和旧版 navicat(如 12/15)的「计划」菜单本质相同,只是 ui 名称变了。点「启用自动运行」不会让备份真正跑起来,只会把操作存成一个作业(比如 backup hh-vue),后续必须手动导出为脚本才能被系统调度。
导出脚本时三个参数必须核对清楚
跳过这一步,90% 的定时备份会静默失败。导出前务必确认:
- 勾选「生成批处理文件」——否则只保存作业,不生成
backup_script.bat或backup_script.sh - 勾选「使用绝对路径」——避免脚本在计划任务中因工作目录切换,把备份写进
C:\Windows\System32或临时目录 - 手动检查「配置文件名」是否与 Navicat 中已保存的连接名**完全一致**(含大小写、空格、连字符),例如连接名为
prod-mysql-8.0,脚本里就必须是--connection="prod-mysql-8.0",错一个字符就报Connection not found
旧版「计划」菜单和新版「自动运行」功能等价,但路径设置逻辑不同
Navicat 12/15 的「计划」→「新建批处理作业」和 Navicat 16 的「自动运行」→「新建批处理作业」走的是同一套底层逻辑,区别仅在菜单命名。但老版本没有强制要求设置「备份保存路径」,而 Navicat 16 建议你提前在连接的「高级」选项卡中通过「设置位置」指定目录(比如 D:\navicat_backups),否则备份文件可能散落在默认临时路径下,后期难定位、易被清理。
真正触发备份的是操作系统级调度,不是 Navicat 自身
这是最常被忽略的一环:无论用 12、15 还是 16 版,只要没把导出的 .bat 或 .sh 脚本交由 Windows 任务计划程序 / Linux cron 执行,备份就永远不会发生。Navicat 本身没有守护进程,也不监听时间事件。常见失败场景包括:
- 脚本权限不足(Linux 下未
chmod +x backup_script.sh) - Windows 计划任务中未勾选「不管用户是否登录都要运行」且设为「只在用户登录时运行」
- 脚本中调用的
navicat.exe路径写死为 C 盘,但实际安装在 D 盘 - 环境变量缺失(比如
PATH里没包含 MySQL 客户端路径),导致mysqldump调用失败
自动运行功能的复杂点不在界面操作,而在脚本导出后的系统级衔接 —— 连接名拼写、路径权限、调度上下文,三者缺一不可。











