必须通过Navicat内置“导出连接”功能生成.ncx文件,不可直接复制;导入后需重输密码、重选SSH私钥路径、处理BOM导致的中文乱码,并确认许可证激活状态。
导出必须用“导出连接”功能,不能直接复制 connections.ncx
直接拷贝 windows 上的 connections.ncx 文件到 mac,navicat 会提示 “invalid connection file” 或列表为空——这不是文件损坏,而是该文件绑定 windows 的加密密钥(tpm/注册表),mac 根本无法解密。你必须在 windows 版 navicat 中主动导出:菜单栏 → 文件 → 导出连接 → 勾选目标连接 → 保存为 .ncx 文件(后缀不可改)。注意:v15 及以上版本才支持跨平台导入,老版本(如 v12–v14)导出的 .ncx 在 mac 上大概率解析失败。
导入后密码全失效,必须手动重输并勾选“保存密码”
Navicat 对密码的加密是硬件绑定的,换平台后星号字段只是占位符,实际已清空。即使你在 Windows 导出时勾选了“包含密码”(v16+ 才有此选项),Mac 导入后仍需逐个操作:双击连接 → 编辑 → 切换到「常规」或「SSH」页 → 手动输入密码 → 勾选「保存密码」→ 点「测试连接」。不点“保存密码”,下次打开还是得输;只点测试成功但没保存,隧道或数据库认证仍会失败。
SSH 隧道配置几乎必然失效,私钥路径要重选
Windows 上的私钥路径比如 C:\Users\Alice\.ssh\id_rsa,在 Mac 上完全不存在。Navicat 不会自动替换或报错,而是静默跳过 SSH 隧道设置,导致连接时卡在“正在连接…”或报 Connection refused。解决方法只有两个:
- 导入后进每个连接的 SSH 设置页,手动点击「浏览」重新选择本地私钥文件(推荐放在
~/Downloads/ssh_keys/这类通用路径) - 提前在 Windows 上把私钥复制到 U 盘或云盘,再拖进 Mac 的某个固定目录,避免路径含中文、空格或特殊符号(如
/Users/张三/.ssh/在某些 v16.x 版本里会静默失败)
SELECT 1 确认端到端可用。
中文连接名乱码?优先用 XML 导出 + 去 BOM
Mac 上用 GUI 导出的 .ncx 文件若在 Windows 导入后中文正常,反过来在 Mac 导入却出现乱码或开头多出 符号,大概率是编码 BOM 污染。macOS GUI 默认写 UTF-8 BOM,而部分旧版 Navicat for Mac(≤ v16.0.15)读取时误把 BOM 当内容解析。临时解法:用 VS Code 打开导出的 .ncx → 右下角点编码 → 「Save with Encoding」→ 选 UTF-8(确保不带 BOM)→ 再导入。一劳永逸的方式是 Windows 端用 CLI(v17+ 内置):navicat --export-connections --format=xml --output=C:\cons.xml,然后在 Mac 上走「文件 → 导入连接」选该 XML 文件——XML 不加密、无 BOM 问题,且兼容性更好。


















