Navicat连接配置无法直接复制迁移,必须用内置导出/导入功能处理.ncx文件;跨设备需重输密码、修正SSH私钥路径、统一编码(推荐v15+),并检查小版本一致性。
Navicat 配置导出后在另一台电脑上无法识别连接
navicat 的「配置」不是纯文本,它依赖本地注册表(windows)或 plist 文件(macos)+ 加密的 connections.ncx 文件组合生效。直接复制 connections.ncx 过去,大概率打开就报错 invalid connection file 或连接列表为空。
- 必须用 Navicat 内置导出功能:菜单栏
文件 → 导出连接 → 选择全部/指定连接 → 保存为 .ncx 文件(注意不是手动拷 config 目录) - 导入时不能双击打开 .ncx:要在目标 Navicat 中执行
文件 → 导入连接 → 选择 .ncx 文件 - 如果源/目标 Navicat 版本差太大(比如 v15 → v17),建议先升级到同一主版本再迁移,否则可能解析失败
密码在跨设备导入后显示为星号且连不上
Navicat 默认对密码加密绑定本机硬件指纹(尤其是 Windows 上绑定 TPM 或主板信息),换设备后即使导入成功,密码字段也变为空或无效。
- 导出前务必勾选
导出时包含密码(v16+ 默认不勾,v15 是灰色不可选,实际不带) - 导入后需手动点开每个连接 →
编辑连接 → 切换到「SSH」或「常规」页 → 重新输入密码 → 点「测试连接」 - 若用的是 Navicat Premium 且启用了「云同步」,密码会走服务端加解密,此时需登录相同账号,但要注意免费版有设备数限制
Mac 和 Windows 之间迁移时中文连接名乱码或截断
Navicat 在不同系统保存连接名时编码策略不一致:Windows 默认用本地 ANSI(如 GBK),macOS 用 UTF-8。导出的 .ncx 文件本身是 UTF-8,但旧版 Navicat(v12–v14)在 Windows 上读取时可能误判编码。
- 优先使用 v15 及以上版本操作迁移,它们统一强制 UTF-8 处理连接元数据
- 如果必须用老版本,导出前把连接名临时改成英文,导入后再改回来(避免名字损坏导致整个连接失效)
- 检查 .ncx 文件头是否含
<?xml version="1.0" encoding="UTF-8"?>,没有的话说明导出环境有问题,别继续用
同步 SSH 隧道配置和私钥路径失效
SSH 私钥路径是绝对路径,跨设备迁移后 /Users/alice/.ssh/id_rsa 在 Windows 上根本不存在,Navicat 不会自动替换,只会静默跳过隧道设置,导致连接数据库失败。
- 导出前,在源端把私钥复制到一个通用位置,比如 Navicat 安装目录下的
ssh_keys/子目录,并在连接中改用相对路径(部分版本支持./ssh_keys/id_rsa) - 更稳妥的做法:导入后进每个连接的
SSH 隧道设置页,手动重选本地私钥文件,不要依赖原路径 - 如果用的是密码认证而非密钥,这部分可忽略;但密钥认证 + 密码保护的私钥,还需额外输入密钥口令,这个口令不会被导出
None、甚至 PostgreSQL 的 Schema 默认值在不同语言系统下解析异常。动手前先确认两端 Navicat 小版本号是否一致,比反复重导更有用。










