Navicat 无原生定时同步功能,需通过命令行工具(Windows用navigator.exe,macOS/Linux用navicat CLI或替代方案)配合系统任务调度实现;关键在正确配置.ns x文件、明文密码、权限及网络连接。
Navicat 里根本没“定时同步”按钮
navicat 本身不提供原生的定时自动数据同步功能。你看到的“同步”操作(tools > data sync)是手动触发的一次性任务,点一次才跑一次。所谓“定时”,必须靠外部调度工具驱动它执行同步任务,navicat 只负责提供可被命令行调用的接口。
用 navigator.exe + 命令行 + 系统计划任务实现定时
Windows 下 Navicat Premium / Navicat for MySQL 等版本安装后,会自带一个命令行工具 navigator.exe(路径通常为 C:\Program Files\PremiumSoft\Navicat Premium 16\navigator.exe,版本号可能不同)。它支持通过参数加载并运行已保存的同步作业(.nsx 文件)。
实操建议:
- 先在 GUI 中完整配置一次同步:选择源库、目标库、映射规则,点击
Save As保存为my_sync.nsx(注意记住保存路径) - 测试命令行能否跑通:
C:\Program Files\PremiumSoft\Navicat Premium 16\navigator.exe -sync "D:\Projects\my_sync.nsx"
(路径含空格必须加英文双引号) - 若报错
Failed to load connection,大概率是 .nsx 里用了“保存密码”,但命令行模式下无法读取 Windows 凭据;解决办法:在同步设置中取消勾选Save password,改用连接属性里填明文密码(仅限内网可信环境) - 把上述命令写成 .bat 脚本,再用 Windows 任务计划程序(Task Scheduler)按需触发——这是最稳定、无需额外装软件的方式
macOS/Linux 用户只能走 navicat CLI(仅限 Navicat 16+)
macOS 版从 v16 开始附带了轻量 CLI 工具 navicat(不是 navigator),位置通常在 /Applications/Navicat Premium.app/Contents/MacOS/navicat。但它对同步任务的支持非常有限:只支持运行备份(-backup)、还原(-restore)和简单查询(-query),不支持直接运行 .nsx 同步作业。
可行替代方案:
- 改用
mysqldump+mysql组合做结构+数据级同步(适合全量),配合crontab调度 - 用 Navicat 导出为 SQL 文件(
Tools > Dump SQL File),再用脚本自动 scp + mysql 执行(注意字符集和 GTID 兼容性) - 若必须用 Navicat 的智能比对逻辑,只能退回到 Windows 虚拟机或 CrossOver 中运行完整版 + 任务计划
同步失败时最常卡在连接认证和权限上
命令行模式下看不到 GUI 的弹窗提示,错误往往静默失败。典型表现是任务“看似执行了”,但目标库数据没变,日志也没输出。
排查重点:
- 检查
.nsx文件里所有连接是否都勾选了Use system DNS?内网 DNS 不稳定时建议改用 IP 直连 - MySQL 目标库用户必须有
INSERT、UPDATE、DELETE、CREATE(如需建表)、ALTER(如需改结构)权限,且host不能是localhost(命令行走 TCP,localhost 会被解析为 socket)——应设为%或具体 IP - Navicat 进程默认以当前用户身份运行,若计划任务配置为“不登录时运行”,需勾选“
Run whether user is logged on or not”,并确保该用户对 .nsx 文件和 Navicat 安装目录有读取权限
同步逻辑本身不复杂,难的是让命令行环境复现 GUI 的连接上下文。每次改完配置,务必先手动运行一遍命令验证,再扔进计划任务。










