作為程式員,我們經常會使用用戶端來管理資料庫,但是卻很少使用能管理資料庫的線上服務。今天給大家推薦一個可以線上可視化管理資料庫的開源工具Bytebase,不僅可以友善地管理資料庫,還支援SQL稽核和備份恢複,總之功能非常強大!
Bytebase簡介
Bytebase是一款面向開發者的資料庫變更管理工具,目前在Github上已有3.6K+Star。
它的主要特性如下:
- SQL稽核:具有一站式SQL稽核面闆,可以直覺地看到資料庫所有變更記錄。
- SQL建議:能自動檢查SQL語句規範,額外提供GitHub Action和API接入方式。
- SQL編輯器:可以線上管理及檢視資料庫表,支援文法的自動提示。
- GitOps工作流:支援內建GitHub和GitLab,使用GitOps工作流進行資料庫變更。
- 備份恢複:支援自動備份資料庫及恢複資料。
下面是使用Bytebase操作資料庫的效果,提示還是挺全的。
安裝
首先我們将在Linux下安裝Bytebase,使用Docker來安裝無疑是最友善的。
- 由于ByteBase對MySQL8的支援比較好,這裡推薦安裝MySQL8,首先下載下傳MySQL8的Docker鏡像;
docker pull mysql:8
- 再使用如下指令運作MySQL8的容器;
docker run -p 3506:3306 --name mysql8 \
-v /mydata/mysql8/mysql-files:/var/lib/mysql-files \
-v /mydata/mysql8/conf:/etc/mysql \
-v /mydata/mysql8/log:/var/log/mysql \
-v /mydata/mysql8/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8
- 然後使用如下指令下載下傳Bytebase的Docker鏡像
docker pull bytebase/bytebase:1.3.1
- 下載下傳成功後,使用如下指令運作ByteBase容器;
docker run --init \
--name bytebase \
--restart always \
--add-host host.docker.internal:192.168.3.105 \
--publish 5678:5678 \
--health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \
--health-interval 5m \
--health-timeout 60s \
--volume /mydata/bytebase/data:/var/opt/bytebase \
-d bytebase/bytebase:1.3.1 \
--data /var/opt/bytebase \
--host http://localhost \
--port 5678
- 運作成功後伺服器将顯示如下資訊;
- 首次運作成功後,需要設定管理者賬号,通路位址:http://192.168.3.105:5678
使用
Bytebase不僅支援線上管理資料庫,還支援一系列資料庫運維操作,下面我們來介紹下它的常用功能。
成員
- 我們一般不會直接使用管理者賬号來操作Bytebase,我們可以通過設定->成員功能來新增成員;
- 然後通過點選成員頭像,編輯成員資訊來設定密碼,設定完成後切換到普通賬号使用。
環境
Bytebase的環境功能可用于區分不同環境下的執行個體,比如測試環境和生存環境,可用于設定資料庫變更是否需要人工稽核以及資料庫的自動備份政策。
執行個體
- 當我們配置好環境之後,就可以在執行個體功能中配置資料庫執行個體了;
- 輸入好資料庫連接配接資訊并選擇好環境後,資料庫執行個體就配置成功了;
- 檢視執行個體詳情時,就可以看到執行個體中的資料庫了;
- 點選資料庫名稱即可檢視資料庫中所有的表資訊。
項目
- 如果我們想在Bytebase中使用SQL語句管理資料庫的話,還需要建立項目;
- 建立完成後,再把資料庫轉移到項目中去;
- 通過這一系列操作之後就可以管理資料庫了,打開SQL編輯器進行資料庫管理操作。
資料庫
資料庫管理
這裡示範下使用SQL編輯器操作資料庫,提示還是挺全的。
資料庫變更
- 如果我們想進行資料庫變更,需要在項目中選擇變更Schema功能;
- 然後輸入我們需要變更的SQL腳本,這裡建立了一張商品表,指定好稽核人,點選建立即可送出變更;
- 這裡由于測試環境沒有設定需要人工稽核會直接執行變更,可以通過環境設定人工稽核。
備份與恢複
在資料庫功能中,我們還可以實作自動和手動備份以及資料恢複操作。
總結
Bytebase确實是一款實用的資料庫管理及變更工具,讓我們在沒有用戶端的情況下也能友善地進行資料庫管理,它的SQL稽核功能可以避免開發人員對資料庫的誤操作。
項目位址
https://github.com/bytebase/bytebase
來源:https://mp.weixin.qq.com/s/oVr9ojK6A8d8DIiIVdHwpQ