在詳細介紹這篇文章的內容前,需要說明下筆者寫這篇文章的意圖:筆者在現有的開發中,前后端聯調的方式為Docker鏡像對接,數據庫使用MySQL鏡像,開發環境為遠程服務器,因此,筆者迫切需要一種能將遠程服務器端的MySQL鏡像中的數據庫進行可視化。
如何使用MySQL鏡像?
利用docker search mysql
命令可以搜索關於MySQL的Docker鏡像,利用docker pull mysql:5.7.26
命令可以拉取MySQL的版本號為5.7.26的Docker鏡像。本文以該鏡像作為MySQL的演示鏡像。
拉取MySQL5.7.26鏡像后,利用docker images | grep mysql
可以查看拉取的MySQL鏡像的信息,如下:
$ docker images | grep mysql
mysql 5.7.26 a1aa4f76fab9 3 weeks ago 373MB
接着啟動該鏡像,啟動的命令如下:
docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD=jclian91 -v $HOME/mysql_data:/var/lib/mysql --name jclian91-mysql -d mysql:5.7.26
參數解釋如下:
- -p: 表示端口映射,將宿主的3307端口映射到容器的3306端口;
- -e: 表示傳入的環境變量參數,這里設置MySQL的root賬戶的密碼為jclian91;
- -v: 表示數據卷的掛載,這里將宿主的HOME目錄下的mysql_data掛載到容器的/var/lib/mysql目錄;
- name表示容器的名稱;
- -d: 表示容器在后台啟動;
- mysql:5.7.26表示啟動的鏡像。
利用docker ps
可以查看這個運行的docker鏡像,如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fdb9e8d40ffb mysql:5.7.26 "docker-entrypoint.s…" 3 seconds ago
Up 2 seconds 33060/tcp, 0.0.0.0:3307->3306/tcp jclian91-mysql
利用命令docker exec -it fdb9e8d40ffb bash
可以進入該容器內部進行操作,其中fdb9e8d40ffb為該容器的ID號。進入該容器后,輸入命令mysql -u root -p
,再輸入密碼jclian91,即可進行MySQL操作了。筆者在MySQL中,創建了test數據庫,同時創建了EMPLOYEE表,如下:
本地MySQL鏡像中的數據庫可視化
MySQL的可視化工具,筆者選擇DBeaver,后續會詳細介紹。
DBeaver的連接信息如下:
連接成功后,輸入以下查詢命令,結果顯示如下:
遠程服務器MySQL鏡像中的數據庫可視化
對於遠程服務器,操作的步驟稍稍麻煩些,但也只是增加端口轉發
這一步。
遠程服務器的MySQL鏡像如下:
$ docker ps | grep mysql
a04b21ffb91a mysql:5.7.26 "docker-entrypoint..." 2 hours ago Up 2 hours 33060/tcp, 0.0.0.0:3307->3306/tcp deploy_test_event_20_mysql_1
$ docker port a04b21ffb91a
3306/tcp -> 0.0.0.0:3307
此時我們通過以下命令將服務器的端口打洞到本地(具體的打洞方式因不同的服務器登陸方式而異):
ssh -f -t -p 22 ***@ip1 -NL 3307:ip2:3307
這時,可以用DBeaver實現可視化,但端口切換為3307。
一款數據庫可視化工具利器——DBeaver
DBeaver是需要java語言支持的一款數據庫軟件(需要電腦上安裝有JDK的環境)。DBeaver是免費和開源(GPL)為開發人員和數據庫管理員通用數據庫工具。它支持任何具有一個JDBC驅動程序數據庫,筆者強烈推薦這款數據庫可視化工具。因為,在使用MySQL可視化工具中,Navicat試用期只有14天,過期后得收費,其他如phpMyAdmin,MySQL Workbench等安裝較為麻煩。
DBeaver的下載網址為:https://dbeaver.io/download/,它支持常規的關系型數據庫,如MySQL,SQL server,Oracle等,支持非關系型數據庫,如MongoDB,Redis等,支持Hadoop生態圈系統的數據庫,如Spark,Impala,Hive等,支持全文檢索數據庫,如ElasticSearch,Solr,還支持圖數據庫Neo4j,OrientDB等。
總結
本文介紹了MySQL鏡像的使用方法以及一款簡單好用的數據庫可視化工具利器——DBeaver,希望能對讀者有所幫助~