Chat2DB 离线部署 4 步搞定:本地化数据库客户端完整指南与 3 个常见坑
【免费下载链接】Chat2DBChat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40+ databases, manage data, edit and run SQL, and use your own AI model to generate, explain, and optimize queries. Available on desktop, web, Docker, and CLI, with MCP support.项目地址: https://gitcode.com/GitHub_Trending/ch/Chat2DB
机房断网那天,DBA 盯着白屏的数据库工具手足无措——库里数据就在内网,管理工具却连不上云服务直接罢工?
Chat2DB 是一款免费、跨平台、本地优先(local-first)的数据库客户端。一次Chat2DB 离线部署后,它完全跑在你自己的机器上,数据源直连你自己的数据库,断外网照样写 SQL、查数据、管表结构。本文用仓库里的真实命令带你走一遍:3 分钟跑起来、看懂它为什么能离线、再绕开 3 个最常踩的坑(以仓库 5.3.0 版本为准,细节以仓库最新为准)。
断网那天,数据库工具还能用吗?
先说清楚一个区别:Chat2DB 不是「支持离线模式」的工具,而是天生本地优先——它没有必须依赖的远端服务。客户端和后端服务都装在本机,唯一需要的网络是「本机 → 你的数据库」这一段。
这意味着:
- 数据源连接配置、查询历史、SQL 收藏都存在本地,不出内网;
- AI 助手是「自带模型」(BYO Model):接你自己部署的模型服务,不强制走任何公有云;
- 对合规敏感的企业内网、隔离机房、跳板机场景,这是它能直接用的根本原因。
下面直接进入最短上手路径。
三分钟出结果:4 条命令完成离线部署
前置要求:Docker 19.03+、Docker Compose V2、2 核 CPU / 4 GiB 内存。
git clone https://gitcode.com/GitHub_Trending/ch/Chat2DB cd Chat2DB ./script/security/init-community-encryption-key.sh docker compose --file docker/docker-compose.yml up --detach然后浏览器打开http://localhost:10825,看到登录后的工作台就算部署成功 🐳
先跑起来,再解释每一步为什么存在:
- 加密密钥:Chat2DB 用 AES-256-GCM 加密保存数据源密码和 AI 模型的 API Key,每个安装实例一把独立的密钥。init-community-encryption-key.sh 会生成 32 字节密钥写入
~/.config/chat2db-community/encryption.key,重复执行会复用已有合法密钥、不会覆盖。 - 容器:docker-compose.yml 把服务默认发布到
127.0.0.1:10825,数据落在命名卷chat2db-community-data,密钥以只读方式挂载进容器。 - 为什么绑 127.0.0.1:官方安全须知明确它是单用户、本机优先应用,没有账号体系和多用户权限边界,HTTP 服务不该暴露给不可信网络。
跑起来之后:离线环境下到底能做什么?
按实际使用流程走一遍:
第一步,连库。支持 40+ 种数据库——MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse、MongoDB、Redis、TiDB、Hive 等,每种库都是独立插件模块。更省心的一点:新的 JDBC 数据库只需配置驱动即可接入,无需改代码。
第二步,写 SQL、跑 SQL。完整的 SQL 工作空间:编辑、补全、执行、结果集在线编辑、SQL 收藏与历史记录。断网状态下这些能力全部可用,因为它们不依赖任何外部服务。
第三步,接你自己的 AI 模型。在设置里填自托管模型的地址和 Key,就能用自然语言生成、解释、优化 SQL。前端 AI 服务层实现在 src/service/ai.ts,模型 Key 和数据库密码一样,落盘时加密。模型服务部署在局域网里,整条链路不出内网。
第四步,本地持久化。连接配置、历史与模板走本地存储:前端侧用 IndexedDB(见 src/indexedDB/table.ts),敏感凭据由服务端用前述密钥加密保存。重启、断网都不影响这些数据。
最常踩的 3 个坑:密钥、端口与升级丢数据
坑 1 ⚠️ 忘了生成密钥,容器起不来。症状是容器反复重启,docker logs chat2db-community里报密钥相关错误。原因是 Web/headless 方式启动缺少合法密钥会直接启动失败,只有 Desktop 桌面模式才会自动创建密钥。排查:
ls -l ~/.config/chat2db-community/encryption.key ./script/security/init-community-encryption-key.sh另外务必单独备份这把密钥:丢了它,已保存的数据库密码和 AI Key 就再也解不出来了。
坑 2 端口打不开、或从别的机器访问不通。先确认容器在跑:docker ps看端口映射是否指向10825(老文档里写的 10824 是错的)。默认绑定127.0.0.1,远程访问需在 docker-compose.yml 里通过CHAT2DB_BIND_ADDRESS调整绑定地址——但我们不建议这么干:它没有多用户隔离,暴露到局域网就等于把库管理权限开放给整个网段。
坑 3 升级后数据「消失」。两个细节容易中招:其一,5.3.0 起使用独立的/root/.chat2db-community数据目录,旧镜像的/root/.chat2db数据不会自动迁移,升级前请手动处理;其二,docker run示例的挂载目录和 Compose 的命名卷是两套存储,互相之间不共享数据,换一种启动方式不要指望数据还在。
还能往哪走:桌面版、MCP CLI 与源码构建
如果你的目标不是服务器而是个人电脑,直接装桌面版更省事:Windows、macOS、Linux 安装包装完即用,无需 Docker,密钥也会自动初始化。仓库还配套了支持 MCP 的开源 CLI,方便把数据库操作接进自动化脚本。
需要定制(比如换端口策略、打内网私有镜像)就走源码构建:Temurin 17 + Node 18.17+ + Maven 3.8+,前端yarn install --frozen-lockfile起本地开发服务,后端 Maven 打包后用-Dchat2db.network.status=OFFLINE参数启动 Web 模式,完整参数见 README_CN.md 的「从源码构建」一节;做 JCEF 内嵌浏览器相关开发可以看 docs/guides/community-jcef-development.md。
下一步建议:按上面 4 条命令先在内网试跑一遍,遇到问题直接查 README_CN.md 或到仓库提 Issue——密钥、端口、迁移这三节是维护者回答最多的方向。
【免费下载链接】Chat2DBChat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40+ databases, manage data, edit and run SQL, and use your own AI model to generate, explain, and optimize queries. Available on desktop, web, Docker, and CLI, with MCP support.项目地址: https://gitcode.com/GitHub_Trending/ch/Chat2DB
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考