Navicat 16/17 激活/无限试用方法(Linux 安全版)
无需破解,无需删除整个 dconf,保留所有数据库连接和 UI 设置
适用于 Navicat Premium / MySQL / PostgreSQL 等 AppImage 版本
⚠️ 网上流传的“危险方法”
再网上找到了 这篇博客 建议执行:
rm -rf ~/.config/navicat
rm -rf ~/.config/dconf/user
这是极其危险的操作!
~/.config/dconf/user是 整个 GNOME 桌面的配置文件- 删除它可能会导致:主题重置、快捷键丢失、扩展失效、输入法异常……
✅ 正确做法:精准定位 + 最小化删除
第一步:确认 Navicat 的 dconf 路径
不要盲目删除整个 dconf,先检查它到底用了哪些路径:
dconf dump / | grep -i navicat
输出:
[com/premiumsoft/navicat-premium]
✅ 所以只需重置这个特定路径即可:
dconf reset -f /com/premiumsoft/navicat-premium/
🔍
dconf reset -f的作用:只清除指定路径下的配置,不影响其他应用
第二步:找出最小需删除的文件
如果直接 rm -rf ~/.config/navicat,会丢失:
- 所有数据库连接(保存在
Common/connections.json) - 查询历史、ER 图布局等
通过反复实验,我发现只需删除以下两个文件就能重置试用:
rm ~/.config/navicat/Premium/preferences.json
rm ~/.config/navicat/Premium/preferences.json.lock # ← 关键!漏掉这个导致第二次启动就过期
如果不删除第二个lock文件的话,可能出现:
- 第一次启动:成功获得 14 天试用 ✅
- 第二次启动:立即提示“试用已过期” ❌
必须一并删除。
最终重置命令(推荐手动使用)
dconf reset -f /com/premiumsoft/navicat-premium/
rm -f ~/.config/navicat/Premium/preferences.json
rm -f ~/.config/navicat/Premium/preferences.json.lock
执行后:
- ✅ 试用期重置为 14 天
- ✅ 所有数据库连接保留(因为没动
Common/目录) - ✅ 不影响 GNOME 桌面任何设置
进阶:自动保留“最近打开的文件”等 UI 设置
虽然重置成功了,但 preferences.json 里其实包含有用信息:
cat ~/.config/navicat/Premium/preferences.json | json_pp
格式化后发现结构:
{
"014BF4EC24C114BEF46E1587042B3619": { /* ← 加密试用状态(不可迁移) */ },
"Recents": { /* ← 最近打开的 SQL 文件(明文!) */ },
"Continues": { /* ← 自动恢复的窗口布局(明文!) */ },
"AutoSaves": { /* ← 自动保存内容(明文!) */ }
}
💡 结论:
我们可以 保留新生成的加密块 + 注入旧的 UI 数据,实现:
- 14 天全新试用
- 最近文件、窗口布局全部回来!
全自动脚本(推荐使用)
脚本 1:智能合并版(保留 UI 设置)
#!/bin/bash
set -e
# === 配置 ===
PREF_DIR="$HOME/.config/navicat/Premium"
PREF_FILE="$PREF_DIR/preferences.json"
LOCK_FILE="$PREF_DIR/preferences.json.lock"
BACKUP_PREFIX="navicat-prefs-backup"
BACKUP_FILE="$HOME/${BACKUP_PREFIX}-$(date +%Y%m%d-%H%M%S).json"
MAX_WAIT=120 # 最多等待 120 秒
# === 检查依赖 ===
if ! command -v jq &> /dev/null; then
echo "❌ 请先安装 jq: sudo apt install jq"
exit 1
fi
# === 1. 备份当前配置(如果存在)===
if [ -f "$PREF_FILE" ]; then
echo "📦 正在备份当前配置..."
cp "$PREF_FILE" "$BACKUP_FILE"
echo " 备份保存至: $BACKUP_FILE"
else
echo "⚠️ 当前无 preferences.json,跳过备份"
BACKUP_FILE=""
fi
# === 2. 彻底重置试用状态(三连删!)===
echo "🧹 正在彻底重置 Navicat 试用状态..."
# 重置 dconf
dconf reset -f /com/premiumsoft/navicat-premium/ 2>/dev/null || true
# 删除主配置 + lock 文件
rm -f "$PREF_FILE"
rm -f "$LOCK_FILE"
echo "✅ 已清除:dconf + preferences.json + preferences.json.lock"
echo ""
echo "🚀 请按以下步骤操作:"
echo " 1. 启动 Navicat AppImage"
echo " 2. 等待软件完全加载(看到主界面)"
echo " 3. 直接关闭 Navicat"
echo ""
echo "⚠️ 注意:必须完成上述操作后再按回车!"
read -p "确认已完成?按回车继续... "
# === 3. 等待新配置生成 ===
echo ""
echo "⏳ 等待 Navicat 生成新配置(最多 ${MAX_WAIT} 秒)..."
count=0
while [ ! -f "$PREF_FILE" ] && [ $count -lt $MAX_WAIT ]; do
sleep 1
count=$((count + 1))
printf "\r⏳ 已等待 %d 秒..." $count
done
printf "\n"
if [ ! -f "$PREF_FILE" ]; then
echo ""
echo "❌ 超时!未检测到新配置生成。"
echo " 可能原因:"
echo " - 未启动 Navicat"
echo " - 启动后未完全加载就关闭"
echo " - 使用了不同版本的 Navicat(路径不同)"
echo ""
read -p "是否要重试?(y/N): " -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo ""
echo "请现在启动并关闭 Navicat,然后按回车..."
read -p "准备好了吗?按回车开始检测... "
count=0
while [ ! -f "$PREF_FILE" ] && [ $count -lt $MAX_WAIT ]; do
sleep 1
count=$((count + 1))
printf "\r⏳ 重试中... 已等待 %d 秒" $count
done
printf "\n"
if [ ! -f "$PREF_FILE" ]; then
echo "❌ 仍然未检测到配置,退出。"
exit 1
fi
else
echo "退出。"
exit 1
fi
fi
echo "✅ 检测到新配置!"
# === 4. 合并 UI 设置(仅当有备份时)===
if [ -n "$BACKUP_FILE" ] && [ -f "$BACKUP_FILE" ]; then
echo "🔄 正在合并 UI 设置(Recents/Continues/AutoSaves)..."
TEMP_MERGED="/tmp/navicat-prefs-merged.json"
jq --argjson old "$(cat "$BACKUP_FILE")" '
.Recents = ($old.Recents // {})
| .Continues = ($old.Continues // {})
| .AutoSaves = ($old.AutoSaves // {})
' "$PREF_FILE" > "$TEMP_MERGED"
if jq empty "$TEMP_MERGED" 2>/dev/null; then
cp "$TEMP_MERGED" "$PREF_FILE"
echo "✅ UI 设置已成功恢复!"
else
echo "❌ 合并失败:JSON 格式无效,跳过恢复"
fi
else
echo "ℹ️ 无旧备份,跳过 UI 设置恢复"
fi
echo ""
echo "🎉 全部完成!现在可以正常使用 Navicat(14天试用)"
脚本 2:极简重置版(不保留 UI 设置)
#!/bin/bash
# 文件名: navicat-simple-reset.sh
dconf reset -f /com/premiumsoft/navicat-premium/ 2>/dev/null
rm -f ~/.config/navicat/Premium/preferences.json
rm -f ~/.config/navicat/Premium/preferences.json.lock
echo "✅ 已重置试用期!"
echo "👉 请手动启动 Navicat"
使用方法
# 创建脚本
nano navicat-reset.sh
# 粘贴上面任一脚本内容,保存退出
# 添加执行权限
chmod +x navicat-reset.sh
# 运行
./navicat-reset.sh
按提示操作即可!
常见问题
Q:为什么不用注册机/破解补丁?
A:因为linux版本的没找到(😭
Q:会丢失数据库密码吗?
A:不会! 密码保存在 ~/.config/navicat/Common/connections.json,我们的操作完全不碰这个文件😎🤌。
Q:适用于 Navicat 17 吗?
A:是的!机制完全相同。
免责声明
本文仅用于技术研究与学习,请支持正版软件。
Navicat 是 PremiumSoft 公司的商业产品,试用期结束后,请购买授权以支持开发者。