在詳細介紹這篇文章的內容前,須要說明下筆者寫這篇文章的意圖:筆者在現有的開發中,先後端聯調的方式爲Docker鏡像對接,數據庫使用MySQL鏡像,開發環境爲遠程服務器,所以,筆者迫切須要一種能將遠程服務器端的MySQL鏡像中的數據庫進行可視化。php
利用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鏡像的信息,以下:java
$ docker images | grep mysql mysql 5.7.26 a1aa4f76fab9 3 weeks ago 373MB
接着啓動該鏡像,啓動的命令以下:mysql
docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD=jclian91 -v $HOME/mysql_data:/var/lib/mysql --name jclian91-mysql -d mysql:5.7.26sql
參數解釋以下:docker
利用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的可視化工具,筆者選擇DBeaver,後續會詳細介紹。
DBeaver的鏈接信息以下:bash
鏈接成功後,輸入如下查詢命令,結果顯示以下:服務器
對於遠程服務器,操做的步驟稍稍麻煩些,但也只是增長端口轉發
這一步。
遠程服務器的MySQL鏡像以下:ssh
$ 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是須要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,但願能對讀者有所幫助~