Navicat for Linux 不支持 GNOME Keyring 或 KWallet,密码以加密形式本地存储于 ~/.navicat/connections.ncx(或 ~/.local/share/Navicat Premium/),不调用 D-Bus 密钥服务;常见问题源于文件权限、SELinux/AppArmor 限制或 connections.ncx 损坏,需检查属主、chmod 600、临时禁用 SELinux 验证,并定期备份该二进制文件。
navicat 在 linux 下根本不会用系统钥匙串(如 gnome keyring 或 kwallet)保存密码 —— 它压根不支持。 所有“配置钥匙串权限”的操作都是无效的,因为 navicat for linux 的密码存储逻辑是纯本地明文加密(写入 connections.ncx),不调用任何桌面环境的密钥服务。错误提示如 failed to save password 或启动时卡在认证环节,基本都源于文件权限、selinux 限制或配置路径损坏。
为什么 Linux 版 Navicat 不走 GNOME Keyring?
Navicat 官方从未为 Linux 版本实现 D-Bus 密钥服务集成。其源码中无 libsecret 或 gcr 调用,也不读取 org.freedesktop.secrets 接口。所有连接凭据默认加密后存于:~/Library/Application Support/PremiumSoft CyberTech/Navicat Premium/connections.ncx(注意:该路径在 Linux 下实际映射为 ~/.navicat/ 或 ~/.local/share/Navicat Premium/,取决于版本和打包方式)。试图用 seahorse 或 gnome-keyring-daemon 干预毫无意义。
检查并修复 connections.ncx 文件权限
常见现象:编辑连接后点保存 → 弹窗报错 → connections.ncx 文件未更新或时间戳不变。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 确认 Navicat 进程是否以当前用户身份运行(不是
sudo navicat) - 运行
ls -l ~/.navicat/connections.ncx,确保属主是当前用户且有写权限:-rw------- - 若属主为 root 或权限为
600但组/其他不可写,执行:chown $USER:$USER ~/.navicat/connections.ncx && chmod 600 ~/.navicat/connections.ncx - 若
~/.navicat/目录不存在,手动创建并设权:mkdir -p ~/.navicat && chmod 700 ~/.navicat
SELinux 或 AppArmor 阻止写入时的表现与绕过
典型症状:Navicat 启动正常,但保存密码失败,dmesg | tail 显示 avc denied 日志,或 ausearch -m avc -ts recent 匹配到 navicat 和 connections.ncx。
- 临时验证是否为 SELinux 干扰:执行
sudo setenforce 0,再试保存密码。若成功,则确认是策略问题 - 永久放行(推荐):生成自定义策略模块:
sudo ausearch -m avc -ts recent | audit2allow -M navicat_local && sudo semodule -i navicat_local.pp - AppArmor 用户:检查
/etc/apparmor.d/usr.bin.navicat是否存在;若无,可临时禁用:sudo aa-disable /usr/bin/navicat(仅调试用)
避免被忽略的关键点
Linux 下的 connections.ncx 是二进制加密文件,无法手工编辑。一旦损坏(如写入中断、磁盘满、强制 kill 进程),Navicat 可能拒绝加载全部连接 —— 此时它不会报错,而是静默跳过该文件,表现为“所有连接消失”。备份习惯必须建立:cp ~/.navicat/connections.ncx ~/backup/connections.ncx.$(date +%s)。不要依赖“同步到云端”或“导出连接”,那些功能本身也依赖 connections.ncx 的完整性。

















