Navicat连接配置存储于本地配置文件中:Windows在%APPDATA%\PremiumSoft\Navicat\,macOS在~/Library/Application Support/PremiumSoft/Navicat/,Linux在~/.navicat/;核心文件为connections.ncx(v15+)或connections.xml(旧版),含全部连接、分组、SSH/SSL等完整设置。
Navicat 连接配置存在哪?别在 GUI 里瞎找
navicat 的连接信息不是存在数据库里,也不是藏在菜单某处——它全在本地配置文件中。windows 存在 %appdata%\premiumsoft\navicat\ 下,macos 是 ~/library/application support/premiumsoft/navicat/,linux 则在 ~/.navicat/。关键文件是 connections.ncx(v15+)或 connections.xml(旧版),它就是你整个连接库的序列化快照。
直接复制这个文件,比导出单个连接快十倍,也比用“导出连接”功能更完整(后者常漏掉分组、SSH 隧道参数、SSL 设置等)。
- 别用 Navicat 自带的「导出连接」:只导出选中连接,不带分组结构,且不兼容跨大版本(比如 v16 导出的 .ncx 在 v17 可能打不开)
- 别手动改
connections.ncx:它是加密 XML(v15+ 默认启用加密),强行编辑会损坏文件,重启 Navicat 后直接清空所有连接 - macOS 用户注意:
~/Library是隐藏目录,用Cmd+Shift+G输入路径直达,别在访达侧边栏找「资源库」
跨平台导入时,connections.ncx 能直接扔过去吗?
能,但有前提:目标机器装的是同一大版本 Navicat(如都是 v16.x 或都是 v17.x),且没开启「连接加密」。如果源端开启了加密(默认开启),那 connections.ncx 在另一台机器上打开会提示「无效的连接文件」或直接空白。
解决办法不是关加密——那是安全风险;而是用 Navicat 自带的密钥迁移机制:
- 在源机器上,进入
文件 → 导出 → 导出连接,勾选「包含密码」并设置一个临时主密码(比如temp123),导出为all_connections.ncx - 把该文件拷到目标机器,在 Navicat 中执行
文件 → 导入 → 导入连接,输入刚才设的临时密码 - 导入成功后,立刻进
工具 → 选项 → 安全,确认「加密连接密码」是否开启——若需长期安全,就保持开启;若只是临时迁移,可关闭(但下次导出又得重复输密码)
为什么用命令行 + navicat-cli 不现实
网上有些教程说用 navicat-cli 工具批量操作,但它根本不是官方支持的接口。Navicat 没开放 CLI,所谓 navicat-cli 是第三方逆向封装,依赖特定版本 DLL/so,v16.1 之后基本失效,且在 macOS M 系列芯片或 Windows ARM 上直接报 Invalid access to memory location。
真正可靠的自动化只有两条路:
- Windows:用 PowerShell 直接复制
$env:APPDATA\PremiumSoft\Navicat\connections.ncx,但必须确保 Navicat 已完全退出(任务管理器里没有navicat.exe或Navicat.app进程) - macOS/Linux:用
cp命令,但要注意权限。比如cp ~/Library/Application\ Support/PremiumSoft/Navicat/connections.ncx ~/.navicat/后,要chown $USER:$USER ~/.navicat/connections.ncx,否则 Navicat 启动时读取失败,日志里只写Failed to load connection list
分组、颜色标记、SSH 隧道这些高级配置会丢吗?
只要用 connections.ncx 文件迁移,全部保留。包括连接分组嵌套层级、自定义图标、背景色标记、SSH 主机/IP/端口/密钥路径、SSL CA/Cert/Key 路径、甚至「自动提交」开关状态——这些在 GUI 导出里全被砍掉。
但有一个真实陷阱:SSH 私钥路径是绝对路径。如果你从 Windows 迁移到 macOS,原路径 C:\Users\Alice\.ssh\id_rsa 在 Mac 上当然打不开。此时 Navicat 会静默降级为密码登录(如果填了密码),或直接连不上(如果只配了密钥)。
- 迁移前先统一私钥位置:比如都放
~/.ssh/navicat_key,然后在 Navicat 连接编辑页里手动更新一次路径 - 检查
connections.ncx文件里是否含硬编码路径:用文本编辑器打开(v15+ 是加密的,看不到;v14 及以前是明文 XML),搜<sshprivatekeypath></sshprivatekeypath>标签 - 颜色标记依赖 Navicat 主题配置,如果目标机器主题被重置过,颜色可能显示异常,但分组和连接本身不会丢
最麻烦的永远不是导出导入动作本身,而是路径、权限、加密状态这三样东西在不同系统间错位。做一次就得记牢:关加密 ≠ 安全,但不关加密 = 必须走密码导入流程;复制文件 ≠ 立刻生效,必须杀干净进程再启动。

















