在详细介绍这篇文章的内容前,须要说明下笔者写这篇文章的意图:笔者在现有的开发中,先后端联调的方式为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.26
参数解释以下:sql
利用docker ps
能够查看这个运行的docker镜像,以下: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镜像以下:服务器
$ 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
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,但愿能对读者有所帮助~