Docker容器中DB2数据库的安装与图形化管理
Docker环境中学习Db2的优势是省去了下载产品、安装产品、初始化数据库实例这部分工作,更适合于开发人员学习Db2。
一、Docker上安装DB2--服务端
1. 查询可安装的db2镜像
首先在Dockerhub上看看有哪些适合的版本;这里直接使用简单的命令吧。
docker search db2
搜索的DB2的结果
2. docker-hub上拉取镜像到本地
这里安装那个start数量最多的,即ibmcom / db2express-c,IBM的出品的,如果没有,可以选择任意一个描述内容为IBM DB2 Express-C的镜像,操作过程相同。
docker pull ibmcom/db2express-c:latest
安装DB2的镜像过程图
3. 运行DB2的镜像
下载1.7G的体积不小呀,耐心等待...查看下在的结果。
1)查询下载镜像
docker images |grep -i db2
下载的结果图
2) 启动DB2容器
docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2root-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash
运行结果图
-
- -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”
创建数据库图
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)破解方式
- 解压dbvis_windows-x64_10_0_16.zip
- 从破解包中的Crack中找到dbvis.jar替换安装路径下lib的“dbvis.jar”
- 在软件启动的界面安装"Help" -> -> "License Key"下,导入license file即可。
破解结果图
3)链接如下
亲测有效:
三: 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
其他问题,具体情况具体分析