【数据库】Docker容器中DB2数据库的安装与图形化管理

Docker容器中DB2数据库的安装与图形化管理

Docker环境中学习Db2的优势是省去了下载产品、安装产品、初始化数据库实例这部分工作,更适合于开发人员学习Db2。

一、Docker上安装DB2--服务端

1. 查询可安装的db2镜像

首先在Dockerhub上看看有哪些适合的版本;这里直接使用简单的命令吧。

docker search db2

【数据库】Docker容器中DB2数据库的安装与图形化管理

搜索的DB2的结果

2. docker-hub上拉取镜像到本地

这里安装那个start数量最多的,即ibmcom / db2express-c,IBM的出品的,如果没有,可以选择任意一个描述内容为IBM DB2 Express-C的镜像,操作过程相同。

docker pull ibmcom/db2express-c:latest

【数据库】Docker容器中DB2数据库的安装与图形化管理

安装DB2的镜像过程图

3. 运行DB2的镜像

下载1.7G的体积不小呀,耐心等待...查看下在的结果。

1)查询下载镜像

docker images |grep -i db2

【数据库】Docker容器中DB2数据库的安装与图形化管理

下载的结果图

2) 启动DB2容器

docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2root-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash

【数据库】Docker容器中DB2数据库的安装与图形化管理

运行结果图

-

  • -p 50000:50000 允许远程的客户端可以从50000 端口连接到数据库实例.
  • 通过指定 -e DB2INST1_PASSWORD=db2root-pwd 参数, 你可以为缺省的Db2实例用户db2inst1设置密码.注意:这里“DB2INST1”是用户名,而“b2root-pwd”是密码。
  • 通过指定-e LICENSE=accept参数, 表示你接受了使用Db2软件的许可证协议.

3)切换用户并运行DB2

$ su - db2inst1     //切换用户
$ db2start          //启动DB2
$ db2sampl          //创建默认数据库“SAMPLE”

【数据库】Docker容器中DB2数据库的安装与图形化管理

创建数据库图

4) 常用的DB2命令

db2 create db [dbname] #创建数据库 
db2 list db directory #列出所有数据库 
db2 list active databases #列出所有激活的数据库 
db2 get db cfg #列出所有数据库配置 

二、本地安装DB2的客户端

说实在的Navicat不支持DB2;这里直接使用DBVisualizer。
这里由于是个人使用,非商用所以。参考了网上的的破解教程,记录如下。

1. 下载安装包和破解文件

1) 安装包

DBVisualizer的官方下载位置
链接:https://pan.baidu.com/s/1DvSyeF4mWC2T1RqYEXRaSA
提取码:ebc3

2)破解包下载

链接:https://pan.baidu.com/s/1DvSyeF4mWC2T1RqYEXRaSA
提取码:ebc3

2. 安装&破解教程

1)安装教程

基本比较简单;本人采用了绿色解压版的,即dbvis_windows-x64_10_0_16.zip

2)破解方式

  1. 解压dbvis_windows-x64_10_0_16.zip
  2. 从破解包中的Crack中找到dbvis.jar替换安装路径下lib的“dbvis.jar”
  3. 在软件启动的界面安装"Help" -> -> "License Key"下,导入license file即可。

【数据库】Docker容器中DB2数据库的安装与图形化管理

破解结果图

3)链接如下

【数据库】Docker容器中DB2数据库的安装与图形化管理

亲测有效:

【数据库】Docker容器中DB2数据库的安装与图形化管理

三: db2客户端因端口问题连接不上db2数据库解决办法

在使用DBVisualizer连接DB2数据库时,如果出现无法连接的情况,考虑两个方面的问题:一个是服务器是否开启了50000端口的TCP和UDP的监听,DB2的设置中是否设置了DB2COMM=TCPIP,另一方面考虑是否关闭了防火墙。

具体操作如下:

1. 使用db2实例用户在服务器执行,查看db2的tcpip服务名称:

db2 get dbm cfg | grep -i "SVCENAME"

2.查询tcpip服务对应的端口:
grep db2c_DB2 /etc/services

3.查看该端口是否被监听:

netstat -an | grep 50000

4.查看实例所用的通讯协议
db2set -all

运行结果:

D:\Program Files\IBM\SQLLIB\BIN>db2set -all
[e] DB2PATH=D:\Program Files\IBM\SQLLIB
[i] DB2ACCOUNTNAME=PC-201509260051\db2admin
[i] DB2INSTOWNER=PC-201509260051
[i] DB2PORTRANGE=60000:60003
[i] DB2INSTPROF=C:\PROGRAMDATA\IBM\DB2\DB2COPY1
[i] DB2COMM=TCPIP --如果未设置这个,就会导致连接失败
[g] DB2_EXTSECURITY=YES
[g] DB2SYSTEM=PC-201509260051
[g] DB2PATH=D:\Program Files\IBM\SQLLIB
[g] DB2INSTDEF=DB2
[g] DB2ADMINSERVER=DB2DAS00

5.设置实例所用通讯协议:

db2set DB2COMM=TCPIP

6.重新启动db2服务即可:

db2stop

db2start

7.关闭防火墙

systemctl stop firewalld.service

其他问题,具体情况具体分析

上一篇:[置顶] 老孟 DB2 V9.7 ESE(一)产品部署 基于centOS 6.4


下一篇:与PostgreSQL或MySQL相比,DB2更可靠和稳定吗?