Navicat连接跨平台迁移需导出为XML而非直接复制connections.ncx文件,因后者绑定本机加密密钥;导入须通过“文件→导入连接”,且注意编码(UTF-8无BOM)、版本兼容性(≥v15)、SSH密钥格式转换及路径规范。
Navicat 连接配置导出后在另一台机器上打不开
navicat 的连接信息默认加密存储,直接复制 connections.ncx 文件过去会提示“无法加载连接”或空白列表。这不是文件损坏,而是它绑定了本机的加密密钥。
- 真正能跨平台迁移的是
导出为 XML(不是直接拷配置文件),路径:右键连接 →导出连接→ 勾选导出为 XML 格式 - XML 文件不加密,Windows/macOS/Linux 通用,但注意:Navicat for MySQL 和 Navicat Premium 版本号需 ≥ 15,老版本导出的 XML 可能缺字段,导入时报
Invalid XML format - 导入时别用“打开文件”,必须走
文件 → 导入连接 → 选择 XML,否则识别为普通文本
Mac 上导出的 XML 在 Windows Navicat 中中文连接名乱码
这是编码写死导致的:macOS 默认用 UTF-8 BOM,Windows 版 Navicat(尤其 ≤ v16.0.15)读 XML 时忽略 BOM,把头几个字节当内容解析,结果连接名开头多出 符号。
- 临时解法:用 VS Code 打开 XML → 右下角点编码 →
Save with Encoding → UTF-8(去掉 BOM)→ 再导入 - 一劳永逸:在 macOS 上用命令行导出,避免 GUI 编码污染:
navicat --export-connections --format=xml --output=/path/to/cons.xml(需 Navicat CLI 工具,v17+ 内置) - 别手动改 XML 里的
<name></name>标签——Navicat 对标签顺序敏感,错位会导致整组连接失效
同步多个设备时 SSH 隧道连接总是失败
SSH 私钥路径、密码、密钥格式(OpenSSH vs PuTTY)是跨平台最常翻车的点。Navicat 不会帮你转换密钥,也不会记住你输过的 SSH 密码(即使勾了“保存密码”)。
- Windows 上用 PuTTYgen 生成的
.ppk,到 macOS 必须转成 OpenSSH 格式:ssh-keygen -i -f id_rsa.ppk > id_rsa.pub(实际需先用 puttygen 转换) - 私钥路径不能含中文或空格,比如
/Users/张三/.ssh/id_rsa在某些 Navicat 版本里会静默失败,改成/Users/zs/.ssh/id_rsa - “测试连接”成功 ≠ 隧道真通——得点开连接后执行一条
SELECT 1,因为隧道建立和数据库认证是两步,Navicat 的测试只走第一步
自动同步连接库的可行边界在哪
没有真正的“一键同步”。Navicat 不提供云账户或 Web 后端同步服务,所谓自动,本质是靠外部工具搬运 XML 文件,而每次导入都会覆盖本地现有连接,不是增量合并。
- 推荐方案:用
rsync或syncthing同步一个专用文件夹,里面只放导出的 XML;每次换设备前先手动导出当前修改,再拉取最新版,最后导入——顺序不能反 - 别把 XML 放网盘根目录!部分网盘(如 iCloud Drive)会偷偷给 XML 加锁或缓存旧版本,导致导入时读到陈旧文件
- 团队共用一套连接?别共享 XML。不同人权限不同,硬塞一起反而容易误连生产库。按角色拆成
dev.xml/test.xml,用文件名区分更安全
跨平台迁移的本质不是“复制粘贴”,是理解 Navicat 怎么加密、怎么解析、怎么校验——每一步跳过验证,后面就得多花十分钟排查一个符号。











