據(jù)庫的本地優(yōu)先開源 SQL 客戶端,5 分鐘 Docker 跑通)
Chat2DB:支持 40 數(shù)據(jù)庫的本地優(yōu)先開源 SQL 客戶端,5 分鐘 Docker 跑通【免費下載鏈接】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/Chat2DBChat2DB 是一款免費的跨平臺、本地優(yōu)先Local-first數(shù)據(jù)庫客戶端與 SQL 工作空間,連接 40 種數(shù)據(jù)庫,提供 SQL 編輯、執(zhí)行、數(shù)據(jù)管理與導入導出能力,并可接入你自己的 AI 模型生成、解釋和優(yōu)化查詢,支持桌面端、Web、Docker 與 CLI 多種運行形態(tài)。從一個真實的痛點說起 ?一個中后臺團隊常見的場景:開發(fā)用 MySQL,數(shù)倉用 ClickHouse,緩存是 Redis,歷史遺留系統(tǒng)還掛著個 Oracle。傳統(tǒng)做法是每個數(shù)據(jù)庫換一套工具——GUI 客戶端一個、命令行一個,連接串散落在各人電腦里。更麻煩的是合規(guī)環(huán)境:數(shù)據(jù)不能上云,云端 SQL 平臺直接出局;而多數(shù) GUI 客戶端又不帶 AI 能力,寫復雜查詢只能靠人肉。Chat2DB 給出的思路是:一個完全跑在本地機器上的客戶端,把多數(shù)據(jù)庫連接、SQL 工作臺和 AI 助手裝進同一個界面,網(wǎng)絡只在你需要時出你的機器。項目定位:它是什么,邊界在哪里一句話:Chat2DB Community 是一個運行在你自己機器上的數(shù)據(jù)庫客戶端 SQL 工作空間,AI 助手接入的是你自己的模型。能力清單(以當前倉庫代碼為準):40 數(shù)據(jù)庫:MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse、MongoDB、Redis、TiDB、Hive 等,通過插件擴展,新增 JDBC 數(shù)據(jù)庫僅需配置、無需改代碼;SQL 工作空間:編輯、補全、格式化、執(zhí)行,SQL 收藏與執(zhí)行歷史;AI 助手:生成、解釋、優(yōu)化 SQL,模型由你自帶(BYOK);數(shù)據(jù)管理:元數(shù)據(jù)瀏覽、表/對象 DDL/DML、在線編輯、數(shù)據(jù)導入導出、Dashboard 圖表,以及支持 MCP 的開源 CLI。邊界同樣明確,選型前要看清:它是單用戶、本地優(yōu)先應用,沒有賬號體系,不做多用戶權(quán)限隔離;不內(nèi)置官方 AI 服務(那是商業(yè)版的事);也不提供云存儲與多設(shè)備同步。最小落地路徑:三條命令到跑通 ?方式一:桌面應用。下載對應平臺安裝包,裝完即連,零配置。方式二:Docker(推薦,適合服務器長期運行)。系統(tǒng)要求 Docker 19.03、2 核 CPU、4 GiB 內(nèi)存: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 -d瀏覽器訪問http://localhost:10825即可。Compose 文件 docker/docker-compose.yml 已經(jīng)把端口、數(shù)據(jù)卷和密鑰掛載都配好了,注意默認綁定127.0.0.1,這是有意為之,后文會講。方式三:源碼構(gòu)建,適合二次開發(fā)。環(huán)境要求 Temurin 17、Node.js 18.17、Maven 3.8:# 前端(chat2db-community-client/) yarn install --frozen-lockfile yarn run start:community:hot # 后端(chat2db-community-server/) mvn -B clean package -Dmaven.test.skiptrue -Dchat2db.finalNamechat2db-community \ -f chat2db-community-server/pom.xml -pl chat2db-community-start -am后端啟動時以-Dchat2db.modeWEB -Dchat2db.network.statusOFFLINE等參數(shù)運行,即完全離線模式。關(guān)鍵機制拆解 1. 插件化數(shù)據(jù)庫接入(SPI)。連接層的抽象在 chat2db-community-spi/ 模塊:IDbManager負責元數(shù)據(jù)與執(zhí)行,ISqlCompletionPlanRule等接口定義 SQL 補全規(guī)則,ICommandExecutor抽象 DDL/DML。chat2db-community-plugins/ 下 40 個數(shù)據(jù)庫各是一個獨立 Maven 模塊,互不耦合。以 MySQL 插件為例,其補全引擎由 Intent 解析、Candidate 規(guī)劃、Slot 分類、Presentation 后處理四個階段組成,新方言接入時只需實現(xiàn) SPI 接口,核心代碼不動。2. AES-256-GCM 加密密鑰。數(shù)據(jù)源密碼和 AI API Key 落盤前都經(jīng)過加密,每實例一把 32 字節(jié)密鑰(44 位 Base64)。初始化腳本寫入~/.config/chat2db-community/encryption.key,兩類憑據(jù)雖共用密鑰但使用不同的 AAD(附加認證數(shù)據(jù)),一種密文無法被誤當作另一種解密。Web/headless 模式下缺密鑰會直接啟動失敗,只有桌面模式自動創(chuàng)建——這是刻意避免靜默裸奔。3. 本地優(yōu)先的存儲。前端工作區(qū)狀態(tài)、已保存的 SQL 等通過 IndexedDB 落在瀏覽器/內(nèi)嵌容器里(src/indexedDB/ 封裝了建庫、索引與游標查詢);服務端數(shù)據(jù)統(tǒng)一存放在/root/.chat2db-community,Docker 部署通過命名卷持久化。兩邊職責清晰:瀏覽器側(cè)存 UI 狀態(tài),服務端存連接與執(zhí)行歷史。橫向參照:和同類方案怎么比維度Chat2DB CommunityChat2DB Pro/Enterprise傳統(tǒng) GUI 客戶端(DBeaver 等)數(shù)據(jù)庫支持40,插件可擴展10040,方言差異體驗參差AI 能力自帶模型接入,無官方服務官方 AI 服務 增強模型基本缺失或需第三方運行形態(tài)桌面 / Web / Docker / CLI(MCP)同左 云桌面為主多用戶/云同步無(單用戶定位)賬號體系、多設(shè)備同步、協(xié)作治理無許可證Source Available(Apache 2.0 附加條款,5.3.0 起)商業(yè)授權(quán)Apache 2.0 等一句話概括差異:傳統(tǒng)客戶端強在連得廣,Chat2DB 強在本地閉環(huán) AI 可插拔;商業(yè)版在同一個核心上疊加賬號、云端與治理。落地建議:這幾個坑提前避 密鑰文件單獨備份,升級時保留。容器重建或機器遷移時若丟了encryption.key,已存的數(shù)據(jù)源密碼與 API Key 將無法解密,只能重新錄入。密鑰解析有 5 級優(yōu)先級(JVM 參數(shù) → 環(huán)境變量 → 文件路徑 → 文件環(huán)境變量 → 默認路徑),配置后改動需重啟生效。只綁回環(huán)地址。它沒有用戶隔離,127.0.0.1綁定是安全底線;需要遠程訪問請走 SSH 隧道,不要直接改端口映射。5.3.0 數(shù)據(jù)目錄不自動遷移。社區(qū)版 5.3.0 起使用獨立的/root/.chat2db-community,舊鏡像的/root/.chat2db數(shù)據(jù)不會自動遷移,升級前手動導出連接配置。docker run與 Compose 的數(shù)據(jù)不互通。前者存$HOME/.chat2db-community-docker,后者用命名卷chat2db-community-data,二選一,不要混用。JDBC 驅(qū)動只裝可信來源。自定義 JDBC Driver 是可執(zhí)行 Java 代碼,等于在客戶端進程里跑第三方代碼,導入的 SQL 文件與 AI 響應同樣按不可信數(shù)據(jù)處理。選型:個人開發(fā)者直接上桌面版;團隊需要在服務器上共享一個實例,選 Docker 并配好密鑰;有多用戶、權(quán)限、審計需求,評估商業(yè)版,不要試圖在社區(qū)版上自研賬號體系。項目倉庫訪問地址:https://gitcode.com/GitHub_Trending/ch/Chat2DB【免費下載鏈接】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創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考