Navicat 不支持离线使用云端资源,其“离线模式”仅指断网后操作本地缓存数据和已保存连接;真正离线协同需靠 Git 管理 SQL 脚本、本地 Docker 运行迁移,并避免依赖 Navicat Cloud。
navicat 本身不支持“离线使用云端资源”——这是概念冲突:离线即断网,云端资源必须联网访问。所谓“离线协同开发”,实际是本地缓存 + 版本化同步 + 权限隔离的组合方案,不是 navicat 自带功能,得靠人来设计流程、选对工具、避开默认陷阱。
Navicat 的「离线模式」只是断网后继续操作本地连接
Navicat 没有独立的“离线模式”开关。所谓离线,就是你拔掉网线或关闭 Wi-Fi 后,仍能打开软件、编辑已保存的连接配置、查看本地缓存的表结构和少量数据(如果之前点开过)。但以下操作立刻失败:
-
连接云数据库(如阿里云 RDS、AWS RDS、腾讯云 CDB)——报错Connection refused或Timeout waiting for response -
同步到云项目(Navicat Cloud 功能)——提示Failed to sync: Network is unreachable -
从云模板拉取查询或共享连接配置——直接灰显不可用
真正能离线用的,只有你本地保存的 .ncx 连接文件、.sql 脚本、以及 Navicat 缓存过的元数据(比如上次展开过的表字段列表)。别指望它自动同步云端变更。
想“离线协同”,必须绕过 Navicat 做版本控制
Navicat 不处理 SQL 变更的合并、冲突解决、回滚追踪。团队要协同,核心不是 Navicat,而是把数据库变更变成可 Git 管理的文本:
- 所有建表、改字段、加索引操作,必须写成
CREATE TABLE/ALTER TABLE脚本,存进 Git 仓库(如./migrations/001_init.sql) - 用
mysqldump --no-data导出结构,或pg_dump -s(PostgreSQL),生成可 diff 的 DDL 文件 - 禁止直接在 Navicat 里点“修改表”再点“保存”——这种操作不会留下可追溯记录,别人离线时根本不知道你改了啥
- 团队约定:只允许通过运行脚本变更数据库,Navicat 仅作查询和调试用
这样,成员离线时可拉取最新 migrations/ 目录,用本地 Docker 数据库(如 mysql:8.0)跑一遍脚本,就得到和云端一致的结构——这才是可控的“离线协同”。
Navicat Cloud 不等于团队协作,反而容易引发配置混乱
Navicat Cloud 是个人账户同步服务,不是团队协作平台。开启后,你的连接密码、SQL 历史、查询片段会上传到服务器,但:
- 没有权限分级:
admin_user和report_reader连接混存在同一个云空间,导出时可能误传敏感配置 - 不同人修改同一连接名(如都叫
prod-db),下次登录会互相覆盖,且无冲突提示 - Cloud 同步的是连接参数,不是数据库状态;你同步了连接,不代表别人连得上——网络策略、白名单、IAM 权限还得各自配
- 一旦某人误删
navicatcloud.com上的连接,全组丢失,且无法按时间恢复(它不存历史版本)
真要共享连接,用加密过的 YAML 文件(如 connections.yaml.gpg)配合 Git + GPG 更可靠;或者用 HashiCorp Vault 存连接串,Navicat 通过环境变量读取。
最常被忽略的一点:Navicat 的“自动保存查询”和“最近打开对象”完全本地存储,不跨设备、不进 Cloud、不进 Git。你以为队友能看到你写的那个复杂 JOIN 查询?其实他重启 Navicat 就没了。协同的前提,是把“人脑里的 SQL”变成“磁盘上的文件”。










