README_CN.md

July 16, 2026 · View on GitHub

Chat2DB

面向开发者、DBA、分析师和数据团队的 AI 驱动数据库客户端与 SQL 工作空间。

OtterMind%2FChat2DB | Trendshift

ModelScope Discord X

README in English 简体中文版自述文件 日本語のREADME README en español 한국어 README

📣 Chat2DB 团队的新消息! 我们刚刚开源了面向 AI 原生应用的全新部署层 Nubase! 如果 Chat2DB 能帮助你更轻松地管理数据,Nubase 将帮助你更顺畅地部署 AI 编程工具和 Agent。

欢迎在 GitHub 上为 Nubase 点亮 ⭐️,支持我们的开源工作!

功能比较

Community、Pro 和 Enterprise 共享同一套数据库客户端基础能力。商业版本是在这一基础上增加官方 AI、云端存储、多设备访问、协作和治理能力,而不是提供另一套数据库内核。

功能点Community 社区版Pro 在线个人版Enterprise 企业版
数据源连接与凭证管理
数据库插件与元数据浏览
SQL 编辑、补全、格式化与执行
DDL/DML、对象管理与数据编辑
数据导入导出
SQL 收藏、历史记录与任务
Dashboard 与 Chart
CLI 与 MCP
自定义 AI 模型
官方 AI 额度与云端聊天历史
账号与身份体系
云端存储与多设备
团队数据源与共享资产
成员与角色
权限、审批与审计
组织数据上下文与企业知识库

下载安装

Chat2DB 是一个跨平台应用,支持 Windows、macOS 和 Linux。您可以从以下链接下载 Chat2DB。

社区版安全边界

Warning

Chat2DB Community 是单用户、本机优先的应用,不提供用户账号、租户隔离或 多用户之间的权限边界。HTTP 服务必须绑定到 127.0.0.1::1,不要直接 暴露给其他用户或不可信网络。

自定义 JDBC Driver 是可执行 Java 代码,只应安装来自可信来源的驱动。导入的 配置文件、压缩包、SQL 文件、数据库内容和 AI 响应仍属于不可信数据。完整信任 边界和漏洞报告流程请参阅 安全策略

社区版 Docker 安装

系统要求

在安装 Chat2DB 之前,请确保您的系统满足以下要求:

  • Docker 19.03.0 或更高版本
  • Docker Compose 2.0.0 或更高版本(Compose V2)
  • CPU >= 2 核
  • RAM >= 4 GiB
# 在仓库目录中首次执行一次;重复执行会复用同一把合法密钥。
./script/security/init-community-encryption-key.sh

docker run --detach \
  --name chat2db-community \
  --restart unless-stopped \
  --publish 127.0.0.1:10825:10825 \
  --volume "$HOME/.chat2db-community-docker:/root/.chat2db-community" \
  --env CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE=/run/secrets/chat2db-community-encryption.key \
  --volume "$HOME/.config/chat2db-community/encryption.key:/run/secrets/chat2db-community-encryption.key:ro" \
  chat2db/chat2db:latest

docker logs --follow chat2db-community

浏览器访问 http://localhost:10825。更新时先拉取新镜像、删除旧容器,再重新执行以上命令。

Chat2DB Community 5.3.0 使用独立的 /root/.chat2db-community 目录,不会自动迁移旧镜像 /root/.chat2db 中的数据。

容器重建时必须保留 ~/.config/chat2db-community/encryption.key,并单独备份。替换或丢失该文件会导致已有数据源密码和 AI 模型 API Key 无法解密;chat2db.mode 不是 DESKTOP 的启动方式(包括常规 Web/headless 启动)缺少合法密钥时会直接启动失败。

仓库也提供了 Compose 配置:

./script/security/init-community-encryption-key.sh
docker compose --file docker/docker-compose.yml up --detach

docker run 示例将应用数据保存在 $HOME/.chat2db-community-docker,Compose 配置使用名为 chat2db-community-data 的命名卷。两处存储不会自动共享数据。

社区版加密密钥

Chat2DB Community 使用 AES-256-GCM 加密保存的数据源密码和用户配置的 AI 模型 API Key。两类数据使用同一把安装密钥,但使用不同的认证 AAD,因此一种用途的密文不能作为另一种用途解密。密钥必须是合法的 Base64,且解码后恰好为 32 字节。仓库提供的初始化脚本会生成标准带填充格式,即 44 个 Base64 字符并以 = 结尾。它是加密密钥材料,不是用户自行输入的普通口令。

在仓库目录中执行以下命令,创建默认密钥文件:

./script/security/init-community-encryption-key.sh

默认路径是 ~/.config/chat2db-community/encryption.key。如需使用自定义路径,应在初始化脚本和 Chat2DB 启动参数中指定同一路径:

./script/security/init-community-encryption-key.sh /secure/path/chat2db-community.key

java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
    -Dchat2db.runtime.mode=community \
    -Dchat2db.mode=WEB \
    -Dchat2db.gui=false \
    -Dchat2db.network.status=OFFLINE \
    -Dchat2db.community.encryption-key-file=/secure/path/chat2db-community.key \
    -Dserver.address=127.0.0.1 \
    -Dserver.port=10825 \
    -jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar

初始化脚本依赖 openssl。脚本选择密钥文件路径的优先级依次为位置参数、CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE 和默认路径。脚本会复用已有的合法普通文件,拒绝符号链接和非普通文件;如果已有文件不合法,脚本会报错且不会覆盖。密钥文件应当只允许 Chat2DB 进程所属用户读取,升级或重建容器时必须保留,并与数据源存储分开备份。

密钥配置按以下优先级解析:

  1. JVM 参数 chat2db.community.encryption-key,值为 Base64 密钥。
  2. 环境变量 CHAT2DB_COMMUNITY_ENCRYPTION_KEY,值为 Base64 密钥。
  3. JVM 参数 chat2db.community.encryption-key-file,值为密钥文件路径。
  4. 环境变量 CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE,值为密钥文件路径。
  5. 默认文件 ~/.config/chat2db-community/encryption.key

第一个已配置的值具有最高优先级。空值、非法 Base64、解码后不是 32 字节的密钥或非法密钥文件都会直接导致启动失败,不会静默回退到下一项。推荐使用密钥文件,避免把密钥值直接暴露在进程参数或环境变量中。

密钥文件是否自动创建只取决于 chat2db.mode,与 chat2db.gui 无关。Community Desktop 模式(chat2db.runtime.mode=communitychat2db.mode=DESKTOP)会在未配置内联密钥且所选密钥文件不存在时自动创建该文件。任何非 Desktop 模式(包括常规 Web/headless 启动)都不会创建缺失的密钥,必须提前初始化或显式配置合法密钥,否则启动失败。解析后的密钥会在进程生命周期内缓存,因此修改密钥配置后必须重启应用。替换或丢失密钥后,已经保存的数据源密码和 AI 模型 API Key 将无法解密。

开发调试

运行环境

  • Java 运行环境:Eclipse Temurin 17
  • Node 运行环境:Node.js 18.17.0 或更高版本
  • Maven 3.8 或以上版本

克隆仓库到本地

git clone git@github.com:OtterMind/Chat2DB.git

前端调试

请使用仓库中的 Yarn lockfile。

cd Chat2DB/chat2db-community-client
yarn install --frozen-lockfile
yarn run start:community:hot

后端调试

cd Chat2DB
mvn -B clean package -Dmaven.test.skip=true -Dchat2db.finalName=chat2db-community \
    -f chat2db-community-server/pom.xml \
    -pl chat2db-community-start -am
./script/security/init-community-encryption-key.sh
java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
    -Dchat2db.gui=false \
    -Dchat2db.runtime.mode=community \
    -Dchat2db.mode=WEB \
    -Dchat2db.network.status=OFFLINE \
    -Dchat2db.community.encryption-key-file="$HOME/.config/chat2db-community/encryption.key" \
    -Dserver.address=127.0.0.1 \
    -Dserver.port=10825 \
    -Dspring.profiles.active=dev \
    -jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar

构建本地 Docker 镜像

./docker/docker-build.sh 5.3.0 chat2db/chat2db:5.3.0

参与贡献

我们欢迎社区提交 Bug、功能建议、文档改进、测试反馈和 Pull Request。

创建 Issue 或提交 Pull Request 前,请先阅读贡献指南。其中说明了如何报告问题、提出建议,以及如何让维护者更高效地审查贡献。

  • Bug 和功能建议请使用 GitHub Issues
  • 使用问题、配置帮助和开放讨论请使用 GitHub Discussions
  • 如果 Pull Request 与某个 Issue 相关,请在 PR 描述中附上对应链接。

联系我们

Chat2DB 联系二维码

致谢

感谢所有为 Chat2DB 贡献力量的同学们。

Chat2DB 贡献者

Star History

Chat2DB Star History 曲线

许可证

Chat2DB Community 5.3.0 及后续版本适用本仓库的 LICENSE。该许可基于 Apache License 2.0 并附加了使用条件, 属于 Source Available 许可。Chat2DB 5.3.0 之前发布的所有版本,包括 0.3.7 以及更早的历史版本,继续适用 Apache License 2.0。