Navicat 15 连接配置在 16 中失效,是因存储路径、加密密钥、文件格式三者全部不兼容:15 存于 ~/Library/Application Support/,16 仅读沙盒路径 ~/Library/Containers/;密钥不互通致密码解密失败;真正连接数据为二进制目录,非 conn.plist;唯一可靠方式是通过 .ncx 文件导出导入,触发重加密与参数适配。

Navicat 15 的连接配置在 Navicat 16 中失效,不是因为数据损坏或被删除,而是两个版本对连接数据的存储路径、加密密钥、文件格式三者全部不兼容。
连接数据根本不在同一位置
Navicat 15 将连接信息存于:
~/Library/Application Support/PremiumSoft CyberTech/Navicat CC/Common/Settings/MySQL/0/0/而
Navicat 16(macOS)启用 App Sandbox 后,只读取沙盒路径:
~/Library/Containers/com.navicat.NavicatPremium/Data/Library/Application Support/PremiumSoft CyberTech/Navicat CC/Common/Settings/这两个路径由系统级隔离,
cp 直接复制整个 Settings 文件夹也无效——除非先启动 Navicat 16 初始化沙盒目录,否则目标路径不存在,复制会静默失败。
加密密钥不互通,密码解密必然失败
-
Navicat 15使用旧版密钥加密密码字段; -
Navicat 16启用新密钥体系,且不提供密钥迁移逻辑; - 即使你把
15的连接子目录(如my_prod_db)完整复制进16的沙盒Settings/MySQL/0/0/,连接名能显示,但测试连接时大概率报错:Access denied for user或密码为空白。
conn.plist 和 pref.plist 是误导项
很多人试图导出/替换这些 plist 文件,但它们在 15→16 迁移中完全无用:
- 它们不存连接主体(主机、端口、密码等),只存 UI 布局、最近打开列表等元信息;
- 真正的连接数据是二进制目录(如
Settings/MySQL/0/0/my_prod_db/下的多个无扩展名文件),无法用文本编辑器查看或修复。
正确迁移方式:只导出再导入,不复制文件
别碰文件系统。唯一可靠路径是:
- 在
Navicat 15中:右键连接 →导出连接→ 生成一个.ncx文件; - 在
Navicat 16中:右键连接列表空白处 →导入连接→ 选该.ncx文件; - 导入后会重新加密密码,且自动适配
16的驱动和参数(如 MySQL 8.0 的caching_sha2_password认证支持)。
手动复制路径 + 二进制文件 + 期望密码可用,是常见但注定失败的操作。真正起作用的只有 .ncx 导入流程——它触发了密钥重加密和参数校验,其他方式绕不开这个环节。


















