Navicat连接迁移必须通过内置导出/导入流程,勾选“包含密码”并注意版本兼容性、SSH私钥路径重设、代理配置重填及跨平台编码问题。
connections.ncx 文件不能直接复制过去就用,必须走 Navicat 内置的导出/导入流程,否则大概率报 invalid connection file 或连接列表为空。
导出时必须勾选「包含密码」才可能免重输
Navicat 默认不导出密码(v16+ 明确取消勾选,v15 灰显但实际也不含),即使你看到连接里存了密码,导出后目标端仍是星号或空。
- 导出前务必手动勾选
Include password(位置在「文件 → 导出连接」弹窗底部) - 如果用的是 v16+,勾选后会强制要求设一个临时主密码(如
temp123),这个密码只用于本次解密,导入时需再次输入 - v15 不支持设临时密码,导出即加密,导入时无需额外密码,但跨设备后仍可能因硬件指纹校验失败而丢密码
导入后 SSH 和私钥路径几乎一定失效
Navicat 保存的是绝对路径,比如 macOS 上是 /Users/xxx/.ssh/id_rsa,Windows 上是 C:\Users\xxx\.ssh\id_rsa —— 直接迁移过去路径不存在,连接测试会卡在「SSH 连接失败」。
- 导入完成后,逐个打开连接 → 切到「SSH」选项卡 → 手动重新指定私钥文件路径
- 若用的是密码认证而非密钥,也要检查「SSH 用户名」和「密码」字段是否为空(即使导出了密码,SSH 密码字段也不共享)
- 代理配置(如 HTTP/SOCKS 代理)同样不会自动适配,需对照源端截图或记忆重新填
跨平台(macOS ↔ Windows)要防中文乱码和编码截断
旧版 Navicat(v14 及以下)在 Windows 上读 .ncx 文件时默认按 GBK 解码,而导出文件本身是 UTF-8 编码,结果就是中文连接名显示为方块或被截断。
- 确保两端 Navicat 版本 ≥ v15(官方从 v15 起统一用 UTF-8 处理
.ncx) - 如果必须用老版本,导出时改用「导出为 XML」格式(右键连接 → Export Connection → 勾选
Export as XML),XML 是纯文本、无加密、UTF-8 无 BOM,跨平台兼容性更好 - 注意:XML 格式不包含某些高级字段(如部分 SSL 配置、自定义连接分组结构),v17 导入时可能提示
Invalid XML format,优先保连接数就用.ncx,保结构完整性可试 XML
别跳过「版本一致性」检查
v16.x 导出的 .ncx 在 v17.0 上可能解析失败,不是 bug,是 Navicat 主动限制了跨大版本兼容性。错误现象包括:导入后无反应、连接名全变成 Connection_1 类似编号、SSL 设置丢失。
- 迁移前先确认源/目标 Navicat 的主版本号一致(如都是
16.x或都是17.x) - 小版本差(如 16.3 → 16.5)通常安全;主版本差(16 → 17)建议先在目标机升级到同一大版本再导入
- 如果只有 v17 新机,又必须迁 v15 的配置,不要硬导
.ncx,改用「导出为 XML」+ 手动补字段更稳妥

















