简介:这是 Navicat 数据库管理工具的解压即用版本,面向数据库管理员、后端开发者和需要在不同机器上快速搭建数据库管理终端的使用者,省去安装配置流程。压缩包内共 122 个文件,大小约 121.69MB,文件构成以动态链接库和可执行程序为主,其中包含大量针对常见数据库的驱动组件(如 Oracle、MySQL/MariaDB 的相关库),同时附有少量 PHP 辅助脚本、样例数据库、密钥证书、说明文档以及表格文件,可覆盖工具启动、连接测试、查询统计和导出等基本使用环节。目前已有 763 人下载学习,适合作为个人或团队在开发、测试、运维场景中的绿色工具包。使用者解压后直接启动即可连接数据库进行管理操作,包内样例数据和文档能帮助快速核对连接参数、熟悉功能界面,也可在无网络环境下作为便携数据库客户端备用。
1. 解压即用版 Navicat:先搞懂它和安装版差在哪
很多同学第一次接触“Navicat 解压即用版”是在公司电脑上——没有管理员权限,安装包弹出来就要授权,或者自己习惯的版本和同事对不上,问题复现不出来。解压即用版解决的痛点很直接:一个文件夹搞定数据库客户端,换机器、换电脑、交给同事,拷过去就能连库,不用重新装、不用重新配连接。但要先说破一件事:Navicat 官方本来就支持“便携模式”,不是谁拿安装包改巴改巴做出个绿色版。它的原理是让程序在启动时发现一个特定标记文件,从而把配置、连接、查询记录都写到程序自己所在的目录,而不是写到系统的注册表和用户目录。理解了这一点,你就能自己组装、自己迁移、出了乱子也能自己修。这篇笔记就顺着这个标题,把“解压即用版”的做法、参数、乱码问题和踩坑记录一次讲完。
2. 把安装版改造成解压即用版:portable 标记文件与数据目录迁移
2.1 便携模式触发机制:一个无扩展名的 portable 文件
Navicat 的便携模式不是靠第三方工具封装出来的,而是程序自带的隐藏开关。常见做法是:在你已经安装好的 Navicat 主程序根目录下,放一个文件名是portable、没有扩展名、内容为空的文件。Navicat 启动时如果检测到这个文件存在,就会把当前安装目录当作数据根目录,所有用户配置不再写入注册表,也不再写入%APPDATA%\PremiumSoft\Navicat,而是就地保存。
这个设计本来是为了方便企业批量分发和 U 盘携带的,结果正好成了“解压即用版”的标准做法。用这个开关的好处是干净:程序本身的文件和解压后生成的数据文件都在同一个目录里,压缩、拷贝、改名都跟着走,不依赖系统环境。相比之下,有些第三方绿色版会在首次运行时悄悄写注册表,看着是免安装,实际重装系统后照样出问题。
需要说明的是,portable文件的位置必须和主程序 exe 放在同一级,也就是说它要放在 Navicat 的根目录,而不是 bin 目录或者某个子目录。放错位置,程序就按普通安装版跑,配置还是写进注册表,你会误以为这个解压包坏了。
2.2 三步迁移:复制安装包、写入标记、搬走用户配置
如果你手上已经有安装好的 Navicat,想把它变成解压即用版,操作路径就是三步。这里以 Windows 10 和 Navicat 16 为例,其他版本路径类似,但注意根据实际安装目录替换。
第一步,找到安装目录并创建 portable 标记文件。用 PowerShell 执行下面这段:
$dmPath = "C:\Program Files\PremiumSoft\Navicat 16" New-Item -ItemType File -Path (Join-Path $dmPath "portable") -Force这段脚本的作用是在 Navicat 根目录下创建一个名为portable的空文件。-Force参数的意思是如果这个文件已经存在,直接复用而不报错。请注意,文件名不能加.txt后缀,也不能改成portable.ini,必须是完整的portable。
第二步,把当前用户已存在的连接配置复制到程序目录。Navicat 安装在正常模式时,连接信息和界面设置存放在用户目录下,路径一般是C:\Users\你的用户名\AppData\Roaming\PremiumSoft\Navicat。执行下面这段:
$dmPath = "C:\Program Files\PremiumSoft\Navicat 16" $srcPath = Join-Path $env:APPDATA "PremiumSoft\Navicat" Copy-Item (Join-Path $srcPath "*") $dmPath -Recurse -Force这里把旧配置整体复制到了安装目录,目的就是让便携模式启动后能读到这些连接。-Recurse是递归复制子目录,-Force覆盖同名文件。如果你的旧电脑上从来没连接过任何数据库,这个目录可能根本不存在,那就直接跳过这一步。
第三步,把整个 Navicat 目录压缩打包,然后拷贝到目标机器解压。这一步没有特殊命令,用系统自带的压缩功能或者命令行压缩工具都可以。解压后仍然保持目录结构完整,双击navicat.exe就能启动。启动后去“连接”面板看,原来配好的连接如果迁移成功,就会原样出现。
2.3 解压目录里的配置文件清单:哪些能删哪些不能删
便携模式跑起来之后,Navicat 根目录下会多出一些文件。下面这张表列了最常见的两类,实际版本可能有差异,但思路一致。
| 文件或目录 | 作用 | 能不能删 |
|---|---|---|
portable | 便携模式标记文件 | 不能删,删了立刻变回安装模式 |
connections相关数据文件 | 保存所有数据库连接信息、SSH 隧道、SSL 证书路径 | 不能删,删了连接全丢 |
query历史相关文件 | 查询编辑器里的历史 SQL | 可以删,最多损失历史记录 |
| 外观/主题相关文件 | 界面字体、颜色方案 | 可以删,恢复默认界面 |
我一般把portable文件和连接数据文件单独备份一份,因为这两个是“解压即用”的核心。查询历史和外观设置丢了不心疼,连接信息丢了才是真的翻车。
提示:便携模式切换后,旧配置里的证书路径、密钥路径如果写的是绝对路径,换机器后可能失效。SSL 证书、SSH 私钥这类文件最好和 Navicat 目录放在一起,并在配置里用相对路径或者重新指定。
3. 解压完成后必调的 5 个连接与显示参数:注释乱码从这个环节开始
3.1 连接属性里的字符集:UTF-8 还是 utf8mb4
解压即用版最容易出现的第一个问题是乱码,而且很多乱码并不是解压包本身引起的,是连接属性里的字符集选错了。Navicat 建立连接时,右键连接名选择“编辑连接”,在“高级”或“编码”相关的标签页里会有字符集选项。这里有一个很容易踩的坑:选UTF-8和选utf8mb4不是一回事。MySQL 的utf8实际上是utf8mb3,最多存 3 字节的字符,遇到 emoji 表情和部分生僻字就会变问号。现在的 MySQL 5.5 以上版本推荐用utf8mb4。
在命令行里验证当前会话的字符集,执行下面这条 SQL:
SHOW VARIABLES LIKE 'character_set_client'; SHOW VARIABLES LIKE 'character_set_results'; SHOW VARIABLES LIKE 'character_set_connection';这三条分别查看客户端发送的字符集、服务端返回结果的字符集、连接层的字符集。正常连 MySQL 8 时,三者都应该是utf8mb4。如果客户端显示是gbk或者latin1,连接里的注释、字段名、查询结果都会乱。
Navicat 连接属性里选好字符集后,程序在建立连接时就会自动执行对应的SET NAMES语句。所以连接属性里的编码本质上是在帮你做这件事,不需要每次手动敲命令。
3.2 多主机切换:解压即用版换机器后怎么批量改 IP
解压即用版被带到新环境后,数据库服务器地址往往要变。最保守的做法是删掉连接重新建,但如果连接有几十个,手工重建就是灾难。常见做法是直接改 Navicat 的连接数据文件,用 PowerShell 做批量替换。
$connsFile = "D:\DevTools\NavicatPortable\connections.json" (Get-Content $connsFile -Raw -Encoding UTF8).Replace("10.0.0.1", "10.0.0.2") | Set-Content $connsFile -Encoding UTF8这段脚本先把连接文件内容原样读出来,把旧的 IP 替换成新 IP,再以 UTF-8 编码写回。替换前一定要先备份原文件,因为连接文件里既有 IP 也有端口、用户名、密钥名称,替换字符串如果写得太宽泛,容易误伤其他配置。另外,如果连接名是中文,JSON 文件里的中文会被转义成\uXXXX形式,直接肉眼搜索中文是搜不到的,搜索 IP 字符串反而安全。
3.3 界面字体与编辑器字体:Windows 10 下中文显示不全的根源
字符集配对了,数据库里的中文也正常返回,但 Navicat 界面上注释仍然显示成方块或者乱码,这就和数据库没关系了,是字体渲染问题。Navicat 的界面字体和编辑器字体是分开设置的。打开“工具”菜单下的“选项”,在“字体”相关设置里,界面字体选“微软雅黑”,编辑器字体如果选了纯西文字体比如 Consolas,中文注释就会用后备字体渲染,显示效果不稳定。
Windows 10 环境下,推荐把编辑器字体设为“Consolas + 微软雅黑”的组合,或者在 Navicat 的字体下拉框里直接选“微软雅黑”。注意,表设计器里“注释”这一栏的显示字体,走的是编辑器字体设置,不是界面字体。很多人调了半天界面字体,乱码照旧,就是因为漏了这个位置。
3.4 连接超时与自动断开:长期挂机的隐形坑
解压即用版有个容易忽视的问题:如果 Navicat 放在 U 盘或者网络驱动器上,连接会时不时卡住。这是因为系统对可移动磁盘和网络盘的读写策略和本地磁盘不同,休眠、拔盘、网络闪断都会导致进程假死。Navicat 的“编辑连接 -> 高级”里有连接超时、读超时、写超时几个参数,长时间挂机的场景下,建议把读超时和写超时从默认值调大,比如读超时 60 秒,写超时 60 秒。
# 注意:以下参数在 Navicat 图形界面的“高级”标签页里设置 # 连接超时:30 秒 # 读超时:60 秒 # 写超时:60 秒这个设置对本地 MySQL 影响不大,但对云数据库和跳板机后面的库影响明显。解压即用版换了一台网络环境更差的机器,默认超时值可能直接导致导入大 SQL 时掉线。
3.5 SSH 隧道与密钥路径:迁移后第一个报错点
如果连接走的是 SSH 隧道,解压即用版换机器后十有八九会报“找不到密钥文件”。原因是密钥在旧机器上的绝对路径不存在了。我的做法是把私钥文件直接放进 Navicat 目录下的ssh文件夹,连接配置里填相对路径。这样整个目录打包走,密钥也跟着走。
4. Windows 10 下 Navicat 注释全是乱码:从数据库到字体的完整排查
4.1 先搞清楚乱码发生在哪一段:客户端、传输层还是渲染层
遇到“Windows 10 Navicat 注释都是乱码”这种问题,第一件事不是重新安装,而是判断乱码发生在哪个环节。按我的经验,链路是三层:数据库里存的中文本身对不对,客户端和数据库之间的编码协商对不对,界面上字体渲染对不对。
区分方法很简单:在 Navicat 的查询编辑器里执行SELECT '中文测试' AS test;,如果返回结果是正常中文,说明传输和客户端解析没问题,问题只在字体渲染。如果返回结果就是乱码,说明连接层编码有问题,重点检查连接属性里的字符集。如果数据库里存的字段本身是乱码,那是历史数据问题,调整连接和字体都无能为力,只能做数据清洗。
我见过最误导人的场景是:表注释在数据库客户端命令行里查是正常的,在 Navicat 里显示乱码。这种情况几乎都是字体或编码设置问题,而不是数据库本身的问题。
4.2 连接编码统一:SET NAMES 与连接属性一一对应
连接层编码问题,核心就是character_set_client、character_set_results、character_set_connection三个变量和数据库实际存储编码不一致。执行下面三条命令,手动把当前会话的编码统一到 utf8mb4:
SET NAMES utf8mb4; SHOW VARIABLES LIKE 'character_set_client'; SHOW VARIABLES LIKE 'character_set_results'; SHOW VARIABLES LIKE 'character_set_connection';SET NAMES utf8mb4相当于一次把三个变量都改掉。第一个SHOW确认客户端发送编码,第二个确认结果集返回编码,第三个确认连接层编码。如果三条结果都显示utf8mb4,传输层就通了。
Navicat 连接属性里的“编码”下拉框,本质就是在启动连接时帮你执行对应的SET NAMES。选UTF-8在很多 MySQL 版本里对应的是utf8mb3,和utf8mb4有区别。如果你的数据库里存了 emoji 或者生僻字,连接属性里要直接找utf8mb4,找不到就手动执行SET NAMES。
注意:修改连接属性里的编码后,已经打开的表窗口需要重新打开一次才能生效。Navicat 对已打开的窗口不会自动刷新会话编码,这也是很多人改完设置以为没用、实际是没重开窗口的原因。
4.3 表和字段本身的字符集:库是 latin1,客户端再怎么设置也没用
连接层设置得再好,数据库表本身是latin1编码,中文一样乱。这种情况多见于老系统迁过来的库。排查语句如下:
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_COLLATION FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_db';如果TABLE_COLLATION是latin1_swedish_ci或者gbk_chinese_ci,而你要显示中文,就需要转换表的字符集。转换命令是:
ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;这条命令会改表编码,同时尝试把原有数据转成新编码。它有风险:如果旧数据本身已经被错误地写成了乱码字节,转变后乱码依然存在,甚至可能因为字节转换变得不可逆。执行前先备份表,导出数据和结构。
顺便说一句,表设计中“注释”的乱码,除了上面的原因,还可能是因为创建表时客户端的character_set_client不是 utf8mb4,导致注释写进去的时候就已经是错码。这类问题只能重建注释。
4.4 Windows 10 系统区域设置:最后一个容易被甩锅的环节
有些用户会说,我连接编码、字体都调了,Navicat 其他中文都正常了,但某些旧版 Navicat 的菜单或者弹窗还有小方块。这个情况可能是 Windows 10 的非 Unicode 程序语言设置不对。系统设置里搜索“区域”,进入“更改系统区域设置”,勾选“Beta:使用 UTF-8 提供全球语言支持”,重启后部分历史遗留问题会消失。
但说实话,Navicat 本身是 Unicode 程序,这个选项对它的影响很有限。我通常把这一步当作最后手段,不优先碰。动了它会影响系统里所有非 Unicode 程序的默认代码页,属于牵一发动全身的操作。解压即用版本来就是要降低环境依赖,能不动系统设置就不要动。
5. 解压即用版常见问题避坑:4 个真实翻车场景与实践修复
5.1 换了解压目录,所有连接全部消失
现象:把 Navicat 解压目录从一个文件夹挪到另一个文件夹,再打开,连接不在了,界面回到初始状态。
原因:便携模式下,Navicat 把数据根目录绑定在程序所在目录。直接移动整个文件夹后,如果中间经过拷贝、改名,或者移动时只拖了 exe 没带数据文件,程序会认为自己首次运行。
解决:先确认portable标记文件还在,并且和数据文件在同一级目录。如果只是换路径,把原目录里的连接数据文件一并复制到新目录即可。我的习惯是压缩整个 Navicat 目录再解压,而不是单独拖文件。文件夹改名、换盘符在 Windows 下容易触发这类问题。
5.2 提示“应用程序无法启动,因为并行配置不正确”
现象:双击 navicat.exe 直接弹窗,报并行配置错误,程序起不来。
原因:解压即用版在目标机器上缺少 VC++ 运行库。安装版在安装时会帮你装好这些依赖,解压版不会主动装,依赖缺失就直接报错。
解决:到目标机器上安装对应版本的 VC++ 运行库,常见做法是先装vcredist_x64.exe,装完再启动。如果目标机器是精简版系统,可能还需要安装 .NET Framework 基础组件。这个坑在 Windows 10 LTSC 精简版系统上出现频率特别高。
5.3 MySQL 8 连接报 Authentication plugin 错误
现象:解压即用版连接 MySQL 8,报Authentication plugin 'caching_sha2_password' cannot be loaded。
原因:MySQL 8 默认认证插件是caching_sha2_password,但解压包里这个版本的 Navicat 客户端认证库不支持它。通常说明你这个解压包版本偏旧,比如 Navicat 12 之前的版本对 MySQL 8 支持不完整。
解决:两个方向。要么升级 Navicat 到新版;要么临时把 MySQL 账号认证方式改回老插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;改完再连就正常了。注意,caching_sha2_password本身更安全,改认证插件只是权宜之计,前提是这台 MySQL 在可信内网环境。生产库上做这个操作要谨慎,最好先和 DBA 确认。
5.4 以前装过正式版,解压即用版启动后还是读旧配置
现象:解压即用版启动后,连接的还是以前正式版里的旧连接,解压目录里改配置不起作用。
原因:portable标记文件没有生效,程序仍然运行在安装模式下,配置读写走的是注册表键和%APPDATA%路径。最常见的原因是文件放错了层级,或者文件带上了隐藏属性。
解决:打开资源管理器,确认portable文件和navicat.exe在同一个目录。如果之前正式版残留了注册表配置也没关系,标记文件生效后程序会忽略注册表。可以用下面这条命令验证标记文件是否真实存在且非目录:
Get-Item "D:\DevTools\NavicatPortable\portable" | Select-Object FullName, Attributes如果输出里没有Directory属性,说明它是一个普通文件,程序能识别。
6. 验证解压即用版能否带着走:5 分钟迁移检查清单
6.1 三张表比对清单:文件、连接、编码
在把解压目录交给别人或者带到另一台电脑之前,我每次都会花几分钟做一次系统检查,避免到现场才发现问题。下面这张表是我自己的检查清单:
| 检查项 | 位置 | 通过条件 |
|---|---|---|
| portable 标记文件 | Navicat 根目录下 | 存在且无扩展名 |
| 连接数据文件 | 根目录下和用户目录%APPDATA%\PremiumSoft\Navicat对比 | 根目录里有连接数据且不为空 |
| 字符集配置 | 连接属性里的编码 | 目标 MySQL 是 utf8mb4 时选 utf8mb4 |
| 字体设置 | 工具-选项-字体 | 界面字体是微软雅黑 |
| SSH 密钥文件 | Navicat 目录内 | 私钥文件存在且连接配置指向正确 |
这个检查的价值在于:把“环境好不好”和“打包对不对”分开看。到了客户现场再排查乱码、连接失败,会很被动;打包前检查一遍,能过滤掉八成问题。
6.2 用 PowerShell 校验迁移前后的配置一致性
如果要换目录或者确认压缩包内容完整,我习惯再用脚本做一次文件级校验。下面这个脚本会列出源目录和目标目录之间缺失的文件以及大小不一致的文件:
$src = "C:\Temp\NavicatPortable" $dst = "D:\DevTools\NavicatPortable" Get-ChildItem $src -Recurse -File | ForEach-Object { $relPath = $_.FullName.Substring($src.Length) $dstFile = Join-Path $dst $relPath if (-not (Test-Path $dstFile)) { Write-Warning "目标目录缺少文件: $relPath" } elseif ($_.Length -ne (Get-Item $dstFile).Length) { Write-Warning "文件大小不一致: $relPath" } } Write-Host "校验完成"这段脚本只比较文件名和大小,不做内容校验,但对“漏拷文件”和“拷贝中断”这类问题足够敏感。判断核心是不是真“解压即用”,最终标准只有一个:把解压目录拷贝到一台没有任何 Navicat 安装记录的机器上,双击能启动,连接能建,表注释是中文。我自己的习惯是随身带一个 16GB 的 U 盘,里面放这个目录和一份 vc_redist 运行库,任何一台机器拿过来都能在十分钟内进入干活状态。
这套流程看着简单,但每个细节都是踩坑踩出来的。尤其是portable标记文件的位置和 utf8mb4 的选择,早期我在这两个地方各翻过一次车,后来固定成检查清单里的必查项,再没出过问题。希望帮到你。
本文还有配套的精品资源,点击获取