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