Navicat 17 不再提供图形化「计划任务」入口,真实可用方式唯一:导出备份脚本并交由操作系统调度器执行;需取消“立即执行”、勾选保存为批处理或Shell脚本,改造密码为login-path/.pgpass,使用绝对路径与外部时间戳生成,并在任务计划中配置“起始于”目录、“不管用户是否登录都要运行”及禁用“仅当用户登录时运行”。
navicat 17 不再提供图形化「计划任务」入口,所谓“点几下设置每天 2:00 备份”是无效路径。真实可用的方式只有一种:用 navicat 导出备份脚本 + 操作系统级调度器驱动执行。
导出备份脚本时必须取消「立即执行」并勾选「保存为批处理文件」
右键目标数据库 →「备份数据库」→ 在向导最后一步,关键操作是:取消勾选“立即执行”,勾选“保存为批处理文件”(Windows)或“保存为 Shell 脚本”(macOS/Linux)。
生成的脚本内容类似:
mysqldump --host=192.168.1.100 --port=3306 --user=admin --password=secret --databases myapp >"D:\backups\myapp_20260727.psc"
⚠️ 这个写法极危险——密码明文暴露、路径含空格或中文会失败、日期无法动态生成。必须立刻改造:
- MySQL 用户应先运行
mysql_config_editor set --login-path=prod --user=admin --password,再把脚本中--user=...替换为--login-path=prod - PostgreSQL 用户删掉
--password=...,改用.pgpass文件,并在脚本开头加export PGPASSFILE="/path/to/.pgpass" - 所有路径必须为绝对路径,不能用
%DATE%或$HOME;如需时间戳,Windows 用for /f,Linux/macOS 用date +"%Y%m%d_%H%M"动态拼接
Windows 任务计划程序里三个必填/必勾选项
哪怕脚本双击能跑,放进任务计划后大概率失败,问题几乎都卡在这三项:
- 「起始于」字段不能为空,必须填脚本所在目录的绝对路径,例如
C:\navicat_backups\—— 否则mysqldump找不到、输出路径报错、日志写入失败 - 必须勾选「不管用户是否登录都要运行」——默认只在桌面会话中运行,服务器锁屏或远程断开即失效
- 必须勾选「不存储密码则只在用户登录时运行」下方的「仅当用户登录时运行」要取消,否则任务根本不会触发
Navicat 自动运行(齿轮+播放图标)不等于定时调度
主界面顶部工具栏最右侧的「自动运行」按钮,本质是批处理作业管理器,它不带任何时间控制能力。你只能在里面拖入已保存的查询(.nq)和导出配置(.nexp),但执行时机仍需外部驱动:
- Windows 下用命令行调用:
navicat.exe --run-job "backup_job_name" - macOS/Linux 下需配合
launchd或cron定期执行该命令 -
.nexp导出路径必须是硬编码绝对路径,不支持变量;若要按天分目录,得靠外部脚本生成带时间戳的.nexp文件再调用
验证备份是否真含数据,别信「任务成功」提示
Navicat 的 .psc 文件是 ZIP 压缩包,双击打开看到表结构不等于有数据。可靠验证方式是:
- 把文件后缀从
.psc改成.zip - 用解压工具打开,进入
data/目录 - 找对应表名的
.sql文件(如users.sql),确认里面是否含INSERT INTO `users` VALUES语句 - 如果只有
CREATE TABLE或data/下为空目录,说明导出模式选错(误选「仅结构」)、权限不足(SELECT * 被拒)、或max_allowed_packet过小导致大表截断
真正容易被忽略的点不是“怎么点”,而是:所有路径必须绝对、所有密码必须脱敏、所有时间逻辑必须外置、所有数据完整性必须手动验证。Navicat 17 把调度权彻底交给了操作系统,它只负责生成可执行单元。


















