在连接虚拟机数据库时发现自己不知道db2的端口号是多少,百度上说50000,60000的都有,所以还是决定自己试一下,并记录下这个过程
# 首先切换到db2inst1的用户
su - db2inst1
# 查询db2配置中 (SVCENAME)= 的值
db2 get dbm cfg | grep -i service
通过上面这个命令,查出来的(SVCENAME)=
为空,按其他博客的教程是拿这里的SVCENAME的值在/etc/services
中新增一行,但是这里没有,所以百度出命令如下:
db2set DB2COMM=tcpip
db2 update database manager configuration using svcename DB2_db2inst1
再次执行db2 get dbm cfg | grep -i service
,这时SVCENAME已经有值了。
使用命令vi /ect/services
插入一行DB2_db2inst1 50000/tcp
,:wq!
无法保存强制退出,是因为当前用户权限不足,要么修改权限,要么切换回root
用户。
编辑失败:
编辑成功:
这时按道理来说应该已经可以了,只要把防火墙关闭或者防火墙开放50000端口就大功告成了。
于是我关闭了防火墙。。。
本地使用dbvis连接虚拟机db2
报错如下:
Long Message:
[jcc][t4][2043][11550][4.18.60] 异常 java.net.ConnectException:打开端口 50,000 上服务器 /192.168.137.100 的套接字时出错,消息为:Connection refused: connect。 ERRORCODE=-4499, SQLSTATE=08001
无法连接。。那我就ping一下我虚拟机的ip192.168.137.100,是可以ping成功的,在检查了一下防火墙是否关闭,也是关着的。没办法,继续百度吧
有篇博客说看下端口50000的LISTEN状态
netstat -nap|grep 50000
啥也没显示。。
所以又一番百度后,查出命令如下:
db2set -all
终于有了!!!
再次使用dbvis连接虚拟机db2
连接成功!
搞定,债见~