Mark Ku's Blog
開源專案 · GitHub

DB-Kit

把 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis、Kafka、Elasticsearch 與 RabbitMQ 十一種資料來源收進同一個介面的跨平台管理工具。Tauri + Rust 後端打造,比 Electron 輕約 10×,安全、開箱即用;繁中 / 英文雙語,內建 AI 助手、SQL 壓力測試與 SQL 審查,另附命令列工具 dbk。

免費 · 開源 (MIT) · 無遙測跨平台 · Windows / macOS / Linux
統一介面
DB-Kit

三分鐘看懂 DB-Kit

一段影片帶你了解它解決什麼問題、有哪些亮點。

支援的資料來源

關聯式、文件型、鍵值型、訊息串流、搜尋引擎,十一種資料來源一次收進同一個工作流程

🐬

MySQL

完整 CRUD、DDL 結構編輯、EXPLAIN 效能分析、索引管理與 SSL 連線模式。

🦭

MariaDB

獨立連線類型、全功能與 MySQL 對齊,INSERT / DELETE … RETURNING 結果集正確顯示。

🐘

PostgreSQL

多欄位篩選、欄位統計、SSL 模式、結構傾印與多格式資料匯出。

🗄️

SQL Server

CRUD、結構分頁(索引 / 外鍵 / DDL)、預存程序與函式、SHOWPLAN 執行計畫與 ER 圖。

🏛️

Oracle

EZConnect / SID / TNS 三種連線方式、DBMS_XPLAN 執行計畫;需自行安裝 Oracle Instant Client(伺服器 12c+)。

🪶

SQLite

免伺服器的本機檔案資料庫,開箱即用,適合輕量專案。

🍃

MongoDB

文件攤平成表格、find / 聚合管線、CRUD-via-JSON、explain 視覺化、驗證規則與監控面板。

🔴

Redis

五種結構視覺化、命名空間鍵樹、Pub/Sub、維運面板、INFO 狀態與指令主控台。

🌊

Kafka

主題 / 分區 / 消費者群組管理、訊息瀏覽與發佈、位移重設、監控告警;Schema Registry / Connect / ACL。

🔍

Elasticsearch

叢集 / 索引樹、Query DSL 編輯器(JSON envelope + lint + 欄位補全)、search / count / 聚合雙結果集、叢集健康總覽與 Mapping 檢視;相容 OpenSearch。

🐰

RabbitMQ

vhost / 佇列樹、非破壞性訊息預覽(basic.get 後 requeue)、publisher confirm 發佈、佇列詳情與清空 / 刪除、叢集總覽。

核心功能

把日常會用到的資料庫操作,做成一致又安全的體驗

🗂️

統一介面

十一種資料來源共用同一套連線樹、資料格與快捷鍵;Ctrl+K 命令面板模糊搜尋,快速跳轉連線 / 資料庫 / 資料表。

🔐

連線安全

密碼以 OS keychain 加密不落地;SSH Tunnel 與 host key 驗證(TOFU);可選啟動密碼、連線唯讀模式與色標區分正式 / 測試環境。

✏️

完整 CRUD 與篩選

儲存格直接編輯、以主鍵定位安全寫回;9 種運算子 + AND / OR 多欄複合篩選、多欄排序、外鍵雙向導覽、釘選常用表。

📝

查詢工作區

語法高亮+欄位上下文自動完成、視覺化查詢建構器(外鍵自動 JOIN)、SQL 片段庫、參數化查詢 :name、查詢歷史與收藏、7 套編輯器配色。

📑

多結果集同時顯示

一次執行多條 SQL,各結果集堆疊顯示、各自捲動 / 排序 / 匯出;中途語句失敗,前面已完成的結果照樣保留。

🔎

進階物件搜尋

Ctrl+Shift+G 跨資料庫搜尋表 / 欄位 / 索引 / 預存程序 / 觸發器,可搜定義內文與註解;整字比對與萬用字元,命中高亮並可跳回側欄。

🔁

匯入與匯出

匯出 CSV / TSV / Excel / JSON / SQL INSERT / Markdown;Excel 與 CSV 匯入含預覽、欄位對應與逐列錯誤回報。

🔀

資料傳輸與比對同步

跨連線 / 跨庫單表或整庫傳輸(目標不存在自動建表);兩表以主鍵比對產生同步 SQL;結構比對支援跨連線。

📊

執行計畫與統計

EXPLAIN 視覺化:SQL Server 走 SHOWPLAN、Oracle 走 DBMS_XPLAN、MongoDB 有 explain stage 樹;欄位統計與相異值分布。

🔥

SQL 壓力測試

把目前語句以多執行緒重放:固定迭代或持續時間+爬升、暖機、p50 / p90 / p95 / p99 延遲百分位與每秒 TPS 折線;錯誤指紋化分組,走專屬連線池不佔用互動連線,寫入與高破壞語句預設擋下。

🩺

SQL 審查

查詢分頁底部的「審查」頁,打字當下用 15 條靜態規則即時檢查:無 WHERE 的 UPDATE / DELETE、笛卡兒積、欄位套函式讓索引失效、NOT IN 的 NULL 陷阱、NOLOCK 髒讀…;方言感知、不執行查詢、離線可用。

結構快取與查詢取消

表 / 欄自動完成改走單一字典查詢並落地磁碟,開分頁當下就有整庫提示、離線也在;執行中的查詢可在伺服器端真正取消(KILL QUERY / pg_cancel_backend),只中止語句不砍工作階段。

🧩

ER 圖、DDL 與整庫文件

可拖曳排版的實體關聯圖、DDL 結構編輯、索引管理,一鍵產出整庫 HTML / Markdown 文件。

🛡️

查詢安全網與備份

結果列數上限與查詢逾時,誤跑大表不再凍結;排程備份+備份歷史;連線池健康檢查與監控。

🌊

Kafka 訊息串流

主題 / 分區 / 消費者群組與位移重設(套用前預覽);訊息瀏覽器支援 JS 篩選、Avro / Protobuf 解碼;發佈含流量模式與 CSV 批次。

📈

Kafka 監控與告警

健康風險掃描、背景指標取樣與趨勢圖表;告警規則觸發 OS 通知;Schema Registry 讀寫、Connect 連接器與 ACL 管理。

🎨

七套寶石系主題

Amethyst / Moonstone / Jade / Garnet / Amber / Ruby / Obsidian,工具列一鍵切換光亮 / 暗黑與變體,同時驅動整個 App 與 SQL 編輯器語法高亮。

🌐

雙語介面

繁體中文 ⇄ English 即時切換不需重啟;GUI、後端錯誤訊息、AI 情境與 dbk CLI(--lang)全線跟隨同一份語言設定。

🤖

內建 AI 助手

右側面板串接本機 Claude CLI(用你的 Claude 訂閱登入,不接雲端 API):串流問答、自然語言生成 SQL / ES DSL(先預覽再套用),另有 AI 審查 SQL、AI 調校建議、AI 分析壓測結果三個一鍵入口。

⌨️

命令列工具 dbk

查詢 / 瀏覽 / 匯出 / 備份 / 壓測,以及需要 --yes(高破壞再要 --force)的寫入;重用同一套連線與 keychain,可編成不連 Tauri 的精簡 binary,適合伺服器與 script 場景。

畫面預覽

App 實際畫面截圖(深色主題)

資料表檢視

資料表檢視

連線樹、分頁、可直接編輯的資料格,以主鍵定位安全寫回。

查詢編輯器

查詢編輯器

SQL 語法高亮、自動完成、查詢歷史與收藏,可只執行反白段;多語句結果堆疊顯示。

ER 圖

ER 圖

外鍵關係視覺化,表卡可拖曳、縮放,佈局自動記憶。

Redis 鍵值檢視

Redis 鍵值檢視

命名空間鍵樹、五種結構編輯、INFO 伺服器狀態面板。

進階物件搜尋

進階物件搜尋

Ctrl+Shift+G 跨資料庫搜尋表 / 欄位 / 索引 / 預存程序,命中處高亮,可一鍵跳回側欄樹。

Kafka 訊息瀏覽器

Kafka 訊息瀏覽器

主題樹、分區 / 位移 / Key / Value 一覽,JSON 明細與 headers;一次性查詢與即時 tail 兩種模式。

SQL 壓力測試

SQL 壓力測試

多執行緒重放同一條查詢:TPS、平均 / 標準差與 p50 / p90 / p95 / p99 延遲百分位,每秒一格的即時折線,錯誤依指紋分組。

SQL 審查

SQL 審查

查詢分頁底部的審查頁:15 條靜態規則分三級嚴重度即時列出問題,點一筆就在編輯器選取對應範圍。

技術棧

Rust 後端的效能與安全,配上現代前端體驗

框架Tauri 2
前端React 18 + TypeScript + Vite
UITailwind CSS + shadcn/ui
狀態管理Zustand
後端Rust(sqlx / tiberius / rust-oracle / mongodb / redis / rdkafka / lapin)
安全OS keychain + SSH Tunnel(russh)

下載安裝

不想自己建置?直接到 GitHub Releases 下載對應作業系統的安裝檔

Windows 10 / 11

DB.Kit_x.y.z_x64-setup.exe(NSIS,建議)或 _x64_en-US.msi

下載後雙擊執行,依精靈完成安裝。

macOS

DB.Kit_x.y.z_aarch64.dmg(Apple Silicon)/ x64.dmg(Intel)

依晶片下載對應 .dmg,把 App 拖進「應用程式」即可。

Linux

.AppImage(免安裝)/.deb(Debian/Ubuntu)/.rpm(Fedora/RHEL)

.AppImage 下載後 chmod +x 直接執行;或安裝對應的 .deb / .rpm 套件。最新版若尚未附 Linux 檔,可先取用前一版或從原始碼建置。

Windows:若 SmartScreen 跳出警告,點「更多資訊」→「仍要執行」(安裝檔未付費簽章所致);Tauri 需要 WebView2 Runtime,Windows 11 已內建,缺少時安裝檔會自動提示下載。macOS:安裝檔未經 Apple 公證,首次開啟若被攔,請對 App 按右鍵→「開啟」,或到「系統設定 → 隱私權與安全性」按「仍要打開」。App 啟動時會自動檢查 GitHub 新版本(「關於」對話框也可手動檢查),升級不必回來重抓。另外,連 Oracle 需自行安裝 64 位元 Oracle Instant Client(未安裝只影響 Oracle 連線)。

快速開始

  1. 1

    安裝先決條件:Rust(stable)、Node.js 18+,以及 Tauri 的系統相依套件。

  2. 2

    git clone https://github.com/markku636/db-kit 並進入專案目錄,執行 npm install。

  3. 3

    開發模式跑 npm run tauri dev;要打包安裝檔則跑 npm run tauri build(Windows 另有一鍵建置 .msi / .exe 的腳本)。

需要 Rust 與 Node.js 18+ 環境;首次建置會編譯 Rust 後端,請預留一點時間。

命令列工具 dbk

除了桌面 GUI,另附一支 dbk CLI:查詢、瀏覽、匯出、備份、壓力測試,以及需要旗標確認的寫入。直接重用核心層(連線管理 / 匯出 / 備份 / 加密),不經過 Tauri,適合 SSH 進伺服器、寫 script、排程任務時用。

用 GUI 已存的連線跑唯讀查詢,輸出 CSV

dbk --conn prod-mysql --format csv query "select id,name from users limit 20"

臨時連線(密碼走環境變數避免出現在 argv),列出資料表

DBKIT_PASSWORD=*** dbk --kind mysql --host 10.0.0.5 --user app db list

瀏覽資料表(分頁 / 篩選 / 排序)

dbk --conn prod-mysql table data orders --page 0 --page-size 50 --filter "status:=:paid" --sort "created_at:desc"

匯出整表(--data-format 支援 csv / tsv / xlsx / json / sql / markdown)

dbk --conn prod-mysql export orders --to orders.xlsx --data-format xlsx

壓力測試:8 執行緒跑 30 秒(含 5 秒爬升),報表以 JSON 導檔當效能基準線

dbk --conn prod-mysql stress "select * from orders where status = 'paid'" --threads 8 --seconds 30 --ramp 5 --format json > baseline.json

寫入要 --yes;未帶旗標時不執行,只印出將要做的動作(等於內建預演)

dbk --conn staging exec "update orders set status = 'void' where id = 1001" --yes

編譯不連 Tauri 的精簡 binary

cargo build --release --no-default-features --bin dbk

三層安全模型:query / explain 只放行查詢類語句(select / with / show / describe / explain / pragma…),偵測到寫入語句會直接擋下並回非零 exit code;要寫入得改用 exec 並帶 --yes;DROP / TRUNCATE / FLUSHDB 與沒有 WHERE 的 UPDATE·DELETE 再要 --force。判斷會先剝掉字串 / 註解 / 括號只認頂層 WHERE,註解掉條件或把 WHERE 藏進子查詢都騙不過去。stress 一律唯讀,不提供 --allow-writes。--kind 支援 mysql / mariadb / postgres / sqlite / mongo / redis / mssql / oracle(Kafka / Elasticsearch / RabbitMQ 僅 GUI),也可用 --url 一段式連線字串(如 oracle://user:pass@host:1521/SERVICE);全域旗標 --lang zh-TW|en 切換訊息語言(與 GUI 共用設定,連 --help 都跟著切)。建議再搭配唯讀 DB 帳號作第二道防線。

看完整 CLI 操作指南(docs/cli.md)

想用一個介面管好所有資料庫?

免費、開源(MIT)、跨平台。到 GitHub 看完整說明、下載安裝檔與原始碼。

DB-Kit — 跨平台統一資料庫管理工具(開源)| Mark Ku 的技術部落格 - Mark Ku's Blog