必须勾选“include password”才能导出有效密码;mac导出的.ncx在windows上连不上,90%因未勾选该选项,且需确保版本一致(如16.x)、重设ssh私钥路径、代理配置及utf-8编码。
导出 connections.ncx 必须勾选 “include password”
mac 上导出的配置在 windows 上连不上,90% 是因为没勾密码选项。navicat 16+ 默认不导出密码,即使你连接里存了密码,connections.ncx 文件里也只存星号。
实操建议:
- 打开 Mac 版 Navicat → 菜单栏 文件 → 导出连接
- 勾选所有要迁移的连接
- **务必拉到弹窗最底部,勾选 Include password**(v16+ 会要求设一个临时主密码,比如 temp123,记牢)
- 保存为 connections.ncx(后缀不能改)
- 导出后立刻删掉本地副本——文件是明文,含密码,不安全
Windows 导入前先确认版本一致
v16.x 导出的 connections.ncx 在 v17.0 上可能静默失败:连接名变成 Connection_1、SSL 设置丢失、双击无反应。这不是 bug,是 Navicat 主动限制跨主版本兼容。
实操建议:
- 查看 Mac 上 Navicat 关于页面里的完整版本号(如 16.3.12)
- Windows 必须安装同主版本(即 16.x,小版本差如 16.3 → 16.5 通常没问题)
- 别用官网默认下载最新版(当前是 v17),去 Navicat 历史版本页找对应 16.x 安装包
- 安装后首次启动不要登录账号,避免云同步干扰本地导入
SSH 和代理配置必须手动重填
connections.ncx 只存参数,不存运行时依赖。Mac 的 SSH 私钥路径是 /Users/xxx/.ssh/id_rsa,Windows 上该路径根本不存在,直接导致“SSH 连接超时”。
实操建议:
- 导入后逐个打开连接 → 切到 SSH 选项卡
- 重新指定私钥文件路径(Windows 下推荐放 C:\Users\你的用户名\.ssh\id_rsa)
- 检查 SSH 用户名 和 密码 字段是否为空(SSH 密码不随主密码导出)
- HTTP/SOCKS 代理设置、跳板机命令、自定义终端命令全部清空,按 Windows 环境重填
- 若用 PuTTY 或 OpenSSH for Windows,注意密钥格式:Mac 导出的是 PEM,Windows 可能需要转成 PPK
中文连接名乱码?优先检查编码和版本
旧版 Navicat(v14 及以下)在 Windows 上默认用 GBK 解码 connections.ncx,而文件本身是 UTF-8,结果就是中文变方块或截断。
实操建议:
- 确保 Mac 和 Windows 都用 v15+(v15 起统一 UTF-8 处理)
- 如果必须用老版本,改用右键连接 → Export Connection → Export as XML(XML 是纯文本、无加密、UTF-8 无 BOM)
- 用 VS Code 打开导出的 connections.ncx,右下角确认编码为 UTF-8(无 BOM),换行符为 LF
- Windows 导入后若仍有乱码,重启 Navicat,别只刷新界面
跨系统迁移真正麻烦的不是导出导入动作本身,而是那些藏在连接背后的环境假设:密钥路径、终端行为、OpenSSH 版本、甚至系统级凭据缓存。做完导入后,一定逐个点开连接测试,而不是只看列表里有没有名字。











