navicat 的 windows 注册表信息无法迁移到 macos,因 macos 使用 plist 和加密的 connections.ncx 文件,二者结构、加密机制完全不同;唯一可行跨平台迁移方式是使用 v15.0.20+ 同版本的 .ncx 文件并正确设置密码与路径。

Navicat 的 Windows 注册表信息不能转成 macOS 配置
直接导出 Windows 注册表里的 Navicat 项(比如 HKEY_CURRENT_USER\Software\PremiumSoft\Navicat)并试图在 macOS 上复用,这条路走不通。macOS 不读注册表,它用的是 ~/Library/Preferences/com.premiumsoft.navicat.plist 和加密的 connections.ncx 文件组合生效,二者结构、加密方式、密钥来源完全不同。
手动提取连接信息只能靠“看”,不能靠“导”
如果你手头只有旧 Windows 机器、无法启动 Navicat 或找不到 .ncx 文件,想抢救连接参数,唯一可行方式是人工查看注册表值,逐条抄录——但要注意:
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
-
Host、Port、UserName、Database这类字段在注册表中是明文或 Base64 编码,可识别 -
Password字段是强加密(绑定 TPM/主板指纹),Windows 上都解不开,更别说迁移到 Mac - SSH 私钥路径(如
C:\Users\xxx\.ssh\id_rsa)在 macOS 上必然无效,需重选文件 - SSL 设置、字符集(
charset=utf8mb4)、压缩协议等高级选项,在注册表里分散且无文档,极易漏项
真正能跨平台迁移的只有 .ncx 文件,且必须满足条件
绕过注册表、改走官方路径才是正解。但要让 .ncx 在 Mac 上可用,得同时满足:
- 源 Windows 和目标 macOS 都运行
Navicat v15.0.20+或统一主版本(如都是 v16.x),v14 及以下在 Mac 上读 .ncx 会乱码 - 导出时务必勾选
Include password(v16+ 还需设临时主密码,导入时再输一次) - 导入后必须手动打开每个连接 → 切到
SSH页 → 重设私钥路径;若用 HTTP/SOCKS 代理,也要重填地址和端口 - 中文连接名不乱码的前提是两端系统语言设为中文,且 Navicat 版本 ≥ v15(强制 UTF-8 解析 .ncx)
Mac 上没有“注册表”对应物,别尝试模拟
有人试过把 Windows 注册表导出为 .reg 文件,再用脚本转成 plist 格式塞进 ~/Library/Preferences/,结果 Navicat 启动就崩溃。原因很简单:plist 只存少量 UI 偏好(比如窗口大小、主题),所有连接逻辑、密码、加密上下文全压在 connections.ncx 里,而这个文件的解密密钥由操作系统层生成(Windows 用 DPAPI,macOS 用 Keychain + hardware UUID)。硬凑只会触发校验失败,报 invalid connection file。










