.ncx文件不适合团队共享,因其采用设备绑定加密(Windows用DPAPI、macOS用Secure Enclave),跨机器静默失效且不报错;安全共享唯一方式是显式导出为UTF-8(no BOM)XML格式,并通过“文件→导入连接”操作,密码需由统一凭证系统动态注入。
不能直接导出 connections.ncx 文件给团队用 —— 它在别的机器上根本打不开,且不报错,只会静默失效。
为什么 .ncx 文件不适合团队共享
Navicat 15+ 的 connections.ncx 是设备绑定的:Windows 用 DPAPI、macOS 用 Secure Enclave 派生密钥,同一份文件拷到另一台电脑,Navicat 加载时不会提示错误,但连接列表为空或密码字段丢失。网上那些 Python 解密脚本在 v15 后全部失效,不是代码问题,而是密钥根本无法跨设备还原。
唯一安全可行的共享方式:导出为 XML 格式
XML 是纯文本、无加密、结构清晰,且 Navicat ≥ v15 官方支持导入。关键点在于必须通过 GUI 或 CLI 显式导出,不能复制配置目录下的原始文件。
- 右键某个连接 → “导出连接” → 勾选
导出为 XML 格式(不是默认的 .ncx) - macOS 用户优先用命令行:
navicat --export-connections --format=xml --output=cons.xml(v17+ 内置),避免 GUI 导出带 UTF-8 BOM 导致中文乱码 - Windows 导入前若发现中文连接名异常,用 VS Code 打开 XML → 右下角编码 → “Save with Encoding” → 选
UTF-8 (no BOM) - 导入时必须走
文件 → 导入连接 → 选择 XML 文件,双击或拖入会被识别为普通文本,不触发导入逻辑
含密码的 XML 是否安全?怎么处理?
XML 默认不包含密码 —— 这是 Navicat 的设计选择,也是团队协作的安全底线。如果你硬要导出带密码的 XML:
- 必须先设置主密码(
工具 → 选项 → 安全 → 主密码),否则“包含密码”选项不可用 - 即使勾选了,导出的 XML 中
Password字段仍是加密字符串,且该加密仍依赖本机密钥 → 到其他机器上依然解不开 - 所以真正可落地的做法是:导出无密码 XML + 用团队统一的凭证管理方案(如 HashiCorp Vault、1Password CLI)动态注入密码,而不是把密码塞进配置文件
导入后连接测试失败的常见原因
不是配置错了,而是路径或权限细节被忽略:
- XML 文件里
<type>MySQL</type>和<type>MySQL (SSH)</type>是两种不同连接类型,导入后需手动补全 SSH 配置项 - PostgreSQL 连接若用了自定义
Schema,XML 不会保存该字段,导入后要重新设置 - SQLite 的
<databasepath></databasepath>是绝对路径,换机器后路径大概率不存在,必须手动修正 - 导入后首次连接失败,别急着删重导,先检查 Navicat 日志(
帮助 → 查看日志文件),搜索Connection failed,往往能定位到具体缺哪个字段
最易被忽略的一点:XML 导出不包含颜色标记、分组折叠状态、最近查询历史这些 UI 层信息,团队成员导入后看到的是“干净但裸露”的连接列表 —— 如果你们靠颜色区分环境(比如红色=生产),这部分得靠文档或命名规范来补足,没法自动化。


















