你不得不知道的四款 MySQL GUI 神器
在 Postgres 和 SQLite 出現(xiàn)以前,MySQL 一直是比較領(lǐng)先的關(guān)系型數(shù)據(jù)庫。Stack Overflow 在 2021 年發(fā)布的面向開發(fā)者的調(diào)查報告也印證了這一點:50.18% 的受訪者(73317 人)表示正在廣泛使用MySQL,且計劃接下來繼續(xù)在工作中使用 MySQL。
MySQL 使用率在所有數(shù)據(jù)庫中高居榜首
盡管 MySQL 設(shè)計簡單,但仍有許多人覺得它難以使用。由此可見 GUI 在提升用戶體驗感方面十分重要的。此外,許多數(shù)據(jù)庫管理員在使用數(shù)據(jù)庫時面臨著以下任務(wù)挑戰(zhàn):
- 對象管理和自動化
- 數(shù)據(jù)分析
- 創(chuàng)建和執(zhí)行查詢
- 開發(fā)和調(diào)試存儲過程
MySQL Shell 在使用上對新手而言可能不太友好,即使是最基本的組件(如 MySQL Workbench 或 MySQL Connectors)也難以上手,某些數(shù)據(jù)庫的高級功能更是很少用到。所以在 MySQL 問世的這 26 年里出現(xiàn)了大量的三方工具。碼匠將擷取幾個常見的三方工具,從以下幾個方面進(jìn)行深度評估:
- 功能:你可以用這個工具做什么,這些功能與 MySQL 原生功能的一致性如何?
- 系統(tǒng)兼容性:該工具是為特定的操作系統(tǒng)開發(fā)的,還是能適用于 Windows、Mac 和 Linux 系統(tǒng),亦或是能在 Web 平臺使用。
- SQL 語句自動補(bǔ)全:是否內(nèi)置了 MySQL 代碼自動補(bǔ)全功能以節(jié)省在編輯器中編寫腳本的時間?
- 特殊功能:該工具有哪些區(qū)別于其他工具的 MySQL 集成方式?
本次測評將盡可能客觀公正,希望能對讀者有所幫助,也歡迎大家在評論區(qū)發(fā)表自己的看法。
Adminer
Adminer 可能是本次測評的幾個工具中最中規(guī)中矩的一個。它在簡化的軟件包中提供了強(qiáng)大的功能。該工具于 2007 年推出,優(yōu)先考慮的是安全性、使用性能和下載工具所占內(nèi)存的大小。用戶可以選擇從 Adminer 提供的超過 25 個主題中選擇喜歡的外觀。
安裝
Adminer 使用單個 PHP 文件進(jìn)行數(shù)據(jù)庫管理,這也使得在任何使用 PHP 的機(jī)器上配置 Adminer 都相對容易一些。讀者可以根據(jù)教程自行設(shè)置。
用戶可以選擇進(jìn)行本地安裝或遠(yuǎn)程安裝可選的 MySQL 數(shù)據(jù)庫服務(wù)器。后者可讓您根據(jù)需要接入遠(yuǎn)程計算機(jī),從而節(jié)省本地內(nèi)存空間。因此,為 MySQL 安裝擴(kuò)展工具對后續(xù)使用體驗的提升是十分有利的。最后,直接從 Adminer 官網(wǎng)下載最新的 Adminer PHP 文件。要添加任何相關(guān)插件都可以在官網(wǎng)和 Adminer 的 GitHub 頁面進(jìn)行查找下載。
總的來說,Adminer 使用起來還是十分簡單好上手的。
功能和 MySQL 支持
與另一個 MySQL GUI 工具 phpMyAdmin 相比,Adminer 進(jìn)行了許多功能上的改進(jìn):
- Adminder 僅有 MySQL 版本(Adminer 是專門為 MySQL 而設(shè)計的)
- 用戶永久登錄
- 字段自動生成
- 多索引操作
- 具有關(guān)聯(lián)接口的完整外鍵支持
- 支持觸發(fā)器、存儲過程/函數(shù)、事件
- 通過確認(rèn)選項進(jìn)行更安全的「行」修改,避免意外覆蓋
- 使用 ALTER 導(dǎo)出實現(xiàn)同步
- 在單個視圖中顯示多查詢結(jié)果
- 在復(fù)雜操作時實現(xiàn)多個選項卡的并發(fā)操作
Adminer 要求安全登錄數(shù)據(jù)庫,并內(nèi)置了請求限流來阻止暴力破解密碼。該工具支持異步數(shù)據(jù)下載,因此我們可以將其看作輕量級和快速的可視化工具。請求多個列表也不會影響使用速度。此外,Adminer 還允許進(jìn)行大量的表格操作——尤其是那些涉及列舉、索引、更改、創(chuàng)建、刪除和添加記錄或索引的操作。用戶可以使用文本字段和文件來執(zhí)行 SQL 命令;還可以創(chuàng)建新數(shù)據(jù)庫、導(dǎo)出數(shù)據(jù)結(jié)構(gòu)、終止進(jìn)程以及在用戶權(quán)限旁邊顯示用戶。
最佳使用場景
Adminer 強(qiáng)調(diào)了兩個看似矛盾點:簡單性和可定制性??啥ㄖ菩灾饕嫦蚰苁炀毷褂们乙筝^高的用戶開放,但新用戶也能夠很快上手使用軟件包中簡單的基礎(chǔ)功能。所以,靈活性才是 Adminer 的主要優(yōu)勢:它既允許有經(jīng)驗的開發(fā)人員通過插件、擴(kuò)展和其他 API 擴(kuò)展出自己想要的功能,也提供文本塊、下拉列表、清單和單選按鈕等能自由組合的基礎(chǔ) UI 組件供新手使用。
Beekeeper Studio
與 Adminer 之類的工具相比,Beekeeper Studio 是一款比較新的產(chǎn)品,它于 2020 年初首次推出,并且提供了開源的社區(qū)版本。Beekeeper Studio 界面設(shè)計更為現(xiàn)代化,反映了過去五年中其他以 GUI 為中心的應(yīng)用程序的設(shè)計模式,其界面和編輯器提供多種預(yù)覽模式,在對信息的組織和展示上也十分清楚明了。此外,Beekeeper Studio 的開發(fā)也很穩(wěn)定,在過去的兩年中已發(fā)布了數(shù)十個版本。
安裝
Beekeeper Studio 與 Windows、Mac 和 Linux 系統(tǒng)均兼容。該工具主要使用 Vue、TypeScript 和 JavaScript 構(gòu)建,本地不需要下載任何 PHP。用戶可以直接從 Beekeeper 官網(wǎng)下載安裝適當(dāng)?shù)陌惭b文件開始使用,這取決于您具體使用的操作系統(tǒng)。
功能和 MySQL 支持
Beekeeper 在其主頁上列出了許多關(guān)鍵功能。鑒于 SSL 加密是所有數(shù)據(jù)庫連接的標(biāo)準(zhǔn),所以安全性非常重要,Beekeeper 將自動保留用戶的賬號和密碼以保證安全連接,同時它還可以幫助用戶在特定端口通過防火墻進(jìn)行連接。
Beekeeper Studio 內(nèi)置編輯器支持 SQL 代碼自動補(bǔ)全,還提供對錯誤語法高亮處理和修改建議自動彈出等開發(fā)者友好的功能,這些功能可以幫助開發(fā)人員更簡單高效、更愉快地編寫 SQL 查詢。
Beekeeper 還提供以下功能:
- 支持在一個統(tǒng)一的窗口內(nèi)包含多個并發(fā)的標(biāo)簽
- 快速保存和組織常見的 SQL 查詢
- 快速簡便地修改數(shù)據(jù)表,并能在以后階段性地進(jìn)行修改
- 使用 GUI 直接創(chuàng)建、編輯和刪除表列、索引和關(guān)系
- 只需幾個步驟就能以 CSV、JSON、JSONL 和 SQL 格式導(dǎo)出數(shù)據(jù) -- 甚至可以與專門的數(shù)據(jù)過濾器結(jié)合使用
Beekeeper 還支持運(yùn)行多種運(yùn)行模式:可以默認(rèn)運(yùn)行所有查詢、運(yùn)行當(dāng)前突出顯示的查詢或僅運(yùn)行選定的查詢。一旦數(shù)據(jù)被檢索并排列在表格中,您就可以根據(jù)需要過濾、排序和細(xì)讀這些信息。Beekeeper 還支持鍵盤快捷鍵的使用。
最佳使用場景
Beekeeper Studio 旨在與多個數(shù)據(jù)庫協(xié)同工作,例如 Postgres、SQLite 和 SQL Server。它并不是專門為 MySQL 構(gòu)建的工具,與 Adminer 相比,Beekeeper 針對 MySQL 而設(shè)計的功能更少一些,因此其更適合日常數(shù)據(jù)查找和操作,而不是密集或詳細(xì)的項目。但 Beekeeper 的編輯器十分出彩,它的頁面設(shè)計美觀、易于使用且功能相對強(qiáng)大,非常適合有大量 SQL 查詢的項目。
CloudBeaver
CloudBeaver 與 Beekeeper Studio 大致在同一時期發(fā)布,是一個較小的開源項目,僅由 13 名開發(fā)者進(jìn)行維護(hù),因此該工具在開發(fā)上十分慎重,但這并沒有阻止 CloudBeaver 對其輕量級、用戶友好的 GUI 進(jìn)行微調(diào)。該工具使用界面很干凈,有深色和淺色兩種模式。CloudBeaver 還為用戶提供信息可視化,讓用戶在能在數(shù)據(jù)庫層面進(jìn)行管理和組織。作為一個 Web 應(yīng)用程序,該工具可面向更大的用戶集,且不會占用較大內(nèi)存空間。
下載安裝
CloudBeaver 有三種版本。首先是 Web 應(yīng)用程序版,由 Web 服務(wù)器和 JavaScript 前端開發(fā)而成。但 CloudBeaver 官方表示,該版本的設(shè)置過程可能比較復(fù)雜。然后是社區(qū)免費(fèi)版本。CloudBeaver 將該版本作為 Docker Hub 上的 Docker 映像或源代碼分發(fā)。最后是企業(yè)版。開發(fā)團(tuán)隊為此專門制作了一個Docker容器,或者用戶可以在 AWS Marketplace 內(nèi)獲取一個 AWS 兼容的版本。該應(yīng)用程序主要是使用 TypeScript 和 Java 構(gòu)建的。
下載安裝 CloudBeaver 時需要使用終端和一些腳本。使用 docker pulldbeaver/cloudbeaver:latest 來獲取當(dāng)前版本,或者使用 docker pull dbeaver/cloudbeaver:dev 來獲取最新的開發(fā)版本。
用戶可以通過終端或訪問 localhost + 端口來訪問 CloudBeaver。
功能和 MySQL 支持
在宏觀層面,CloudBeaver 為用戶提供數(shù)據(jù)編輯器、數(shù)據(jù)導(dǎo)出、實體圖、SQL 編輯器、AWS 和 Docker 集成(RDS、Redshift、Dynamo DB、Docker Hub)和執(zhí)行計劃。這些功能都具有深挖的價值。
數(shù)據(jù)編輯器以帶標(biāo)簽的行和列組成的可讀列表格式顯示來自表和查詢的數(shù)據(jù),如下圖所示:
CloudBeaver 支持快速掃描這些自定義類別并以合理的格式排列數(shù)據(jù),支持關(guān)系數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫,能快速查看所有數(shù)據(jù)類型,可以從表中讀取任意長度數(shù)據(jù),還有專用的數(shù)據(jù)過濾器面板,甚至能根據(jù)列號對表進(jìn)行排序。
對于導(dǎo)出,CloudBeaver 支持 CSV、XLSX、XML、JSON 和 SQL INSERTs 格式。實體圖提供了很多有趣的功能。如果用戶想可視化整個數(shù)據(jù)庫模式,Beaver 將提供帶有標(biāo)簽和分類數(shù)據(jù)點的流程圖樣式圖。默認(rèn)支持唯一約束、外鍵和自動布局。用戶還可以將此可視化文件導(dǎo)出為 PNG 或 SVG 文件。
SQL 編輯器對不同數(shù)據(jù)庫方言語法會進(jìn)行高亮顯示,還提供列、表、SQL 關(guān)鍵字和過程的自動完成功能。查詢結(jié)果可在多個并發(fā)選項卡中查看。
用戶還可以將 CloudBeaver 與 AWS 賬戶集成,以使用 AWS 憑證和 RDS 身份驗證解鎖 AWS 數(shù)據(jù)庫的授權(quán)瀏覽。這種類型的過程依賴于 Kerberos 或 Active Directory,因此允許用戶限制意外訪問。同時用戶還具有與 Docker 環(huán)境的兼容性以及為本地或遠(yuǎn)程數(shù)據(jù)庫提供服務(wù)的能力。
最后,執(zhí)行計劃功能會在結(jié)果選項卡中生成查詢執(zhí)行樹,并評估腳本和查詢是否設(shè)計為在其現(xiàn)有格式下以最佳方式工作。
最佳使用場景
CloudBeaver 適合喜歡云端集成的用戶。該工具是在考慮這些云平臺的基礎(chǔ)上構(gòu)建的(例如 AWS 提供了 CloudBeaver),為從多種數(shù)據(jù)源獲取數(shù)據(jù)庫服務(wù)提供了一個更加全面的可行性列表。
CloudBeaver 也非常適合團(tuán)隊協(xié)作——用戶可以簡單通過一個可共享的鏈接邀請協(xié)作者加入項目工作區(qū)。企業(yè)用戶和普通用戶都能使用這一協(xié)作版本,相較于其他工具來說,這一點是十分出類拔萃的(其他工具不提供專門的協(xié)作版本)。
碼匠
當(dāng)然,在使用常規(guī)的 MySQL GUI 之外,我們再向您介紹一下碼匠。碼匠是一款開發(fā)者友好的低代碼平臺,支持連接 MySQL 數(shù)據(jù)庫、編寫和執(zhí)行查詢。此外,碼匠還提供了一套開箱即用的組件,不僅能幫助您輕松搭建功能完善的數(shù)據(jù)看板、數(shù)據(jù)洞察,還可以讓您快速搭建一個功能完善的內(nèi)部應(yīng)用。
碼匠快速創(chuàng)建 MySQL 數(shù)據(jù)源連接,之后可通過開箱即用的一系列組件快速搭建應(yīng)用
碼匠主要面向國內(nèi)用戶,相較于上述國外開發(fā)的 MySQL GUI,碼匠的 UI 界面設(shè)計更加適合國內(nèi)場景,同時整合了多款國內(nèi)數(shù)據(jù)源,包括飛書、企業(yè)微信、釘釘、阿里云 OSS,等等。不僅如此,碼匠還提供了國內(nèi)業(yè)務(wù)場景下常見的租戶管理、更加細(xì)粒度的權(quán)限控制、審計日志等功能,為您的企業(yè)信息安全保駕護(hù)航。
如何選擇最合適的 MySQL GUI
現(xiàn)在市面上有非常出色的 MySQL GUI 工具,用戶最終選擇哪款還得基于其工作需求。
如果您使用需求較復(fù)雜,可以選擇 Adminer 工具進(jìn)行靈活擴(kuò)展;如果您追求使用體驗感,那么我們推薦 Beekeeper Studio;如果您的工作更多的需要團(tuán)隊協(xié)作或AWS 集成,那么可以考慮 CloudBeaver。如果您不甘心只當(dāng)一個 CRUD boy,想要在基本的數(shù)據(jù)庫管理之上構(gòu)建更強(qiáng)大的應(yīng)用程序,那么碼匠將是您的不二選擇。