博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
阅读量:5787 次
发布时间:2019-06-18

本文共 4616 字,大约阅读时间需要 15 分钟。

有一次,在使用DbVisualizer工具连接自己linux虚拟机上的DB2数据库时,报如下错误:

 

Product:  DbVisualizer Pro 9.1Build:  #2050 (2013/09/08 11:03)Java VM:  Java HotSpot(TM) 64-Bit Server VMJava Version:  1.6.0_43Java Vendor:  Sun Microsystems Inc.OS Name:  Windows 7OS Arch:  amd64OS Version:  6.1An error occurred while establishing the connection:Long Message:[jcc][t4][2043][11550][4.15.82] 异常 java.net.ConnectException:打开端口 50,000 上服务器 /192.168.17.88 的套接字时出错,消息为:Connection timed out: connect。 ERRORCODE=-4499, SQLSTATE=08001Details:   Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException   Error Code: -4499   SQL State: 08001

 

在百度上搜索"DB2 SQLSTATE=08001",找到如下资料:

这种问题一般的原因:1.DB2COMM=TCPIP2.数据库故障3.端口号被禁用解决方案:1.看看端口号有没有配置正确,看一下配置参数svcename跟services文件中配置的db2端口号是否一致,windows一般用50000,unix/linux一般用60000。2.连接出错首先看看服务器ip 和端口写对没有。ip如果没错就要看看服务器的db2服务端口对不对。另外对于服务器下面这些也要注意。检查服务器的配置情况如下:验证存在的DB2数据库db2 list db directorydb2 list db directory show detail验证实例使用的通讯协议,查看DB2COMM变量db2set -all查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)db2 get dbm cfg查看/etc/services中,有无与上面对应SVCENAME的端口,例如:db2cDB2 50000/tcp要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态。

 

查看我linux虚拟机上的db2数据库端口设置:

[root@localhost ~]# cat /etc/services | grep db2c_db2inst1db2c_db2inst1 50000/tcp

端口设置没有问题,在看防火墙设置:

[root@localhost ~]# service iptables status±í¸ñ£ºfilterChain INPUT (policy ACCEPT)num  target     prot opt source               destination         1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:81 7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8081 9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8002 11   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)num  target     prot opt source               destination         1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)num  target     prot opt source               destination         [root@localhost ~]#

 

原来防火墙没有开启50000端口。编辑该文件,在里面添加一条记录:

11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:50000

 

添加完之后,重启iptables设置(一定要重启,否则不生效),并再次查看防火墙端口设置信息(注意红色标记部分):

[root@localhost ~]# service iptables restart清除防火墙规则:                                           [确定]把 chains 设置为 ACCEPT 策略: filter                      [确定]正在卸载 Iiptables 模块                                    [确定]应用 iptables 防火墙规则                                   [确定][root@localhost ~]# service iptables status±í¸ñ£ºfilterChain INPUT (policy ACCEPT)num  target     prot opt source               destination         1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:81 7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8081 9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8002 11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:50000 12   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)num  target     prot opt source               destination         1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)num  target     prot opt source               destination         [root@localhost ~]#

再次使用DbVisualizer工具连接数据库,成功!

 

转载于:https://www.cnblogs.com/jun1019/p/5605850.html

你可能感兴趣的文章
寻找最大的K个数(下)
查看>>
freopen()函数
查看>>
高等微積分(高木貞治) 1.4節 例2
查看>>
C#高级编程(第七版)读书笔记(4)——对象和类型
查看>>
c#---params参数
查看>>
为什么Visual Studio的安装目录下有名为1033或2052的文件夹?
查看>>
python全栈开发 * 04 * 180604
查看>>
字典树+博弈 CF 455B A Lot of Games(接龙游戏)
查看>>
用Python快速找到出现次数最多的数据
查看>>
获取POM.XML依赖的JAR包
查看>>
个人代码库のC#可移动按钮“相关代码”
查看>>
javaScript对象
查看>>
NYOJ94cigarettes
查看>>
TableLayout与MigLayout
查看>>
[09-02]元素innerHTML
查看>>
数据解析1:XML解析(1)
查看>>
bootstrap treetable 树形网格,动态扩展,连数据库
查看>>
生成器与迭代器
查看>>
Windows环境下JDK安装与环境变量配置详细的图文教程
查看>>
最长上升子序列模板 hdu 1087 Super Jumping! Jumping! Jumping!
查看>>