DB2连接不上mysql数据库_一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
有一次,在使用DbVisualizer工具連接自己linux虛擬機(jī)上的DB2數(shù)據(jù)庫時(shí),報(bào)如下錯(cuò)誤:
Product: DbVisualizer Pro 9.1Build: #2050 (2013/09/08 11:03)
Java VM: Java HotSpot(TM)64-Bit Server VM
Java Version:1.6.0_43
Java Vendor: Sun Microsystems Inc.
OS Name: Windows7OS Arch: amd64
OS Version:6.1An error occurredwhileestablishing the connection:
Long Message:
[jcc][t4][2043][11550][4.15.82] 異常 java.net.ConnectException:打開端口 50,000 上服務(wù)器 /192.168.17.88 的套接字時(shí)出錯(cuò),消息為:Connection timed out: connect。 ERRORCODE=-4499, SQLSTATE=08001
Details:
Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException
Error Code:-4499SQL State:08001
在百度上搜索"DB2 SQLSTATE=08001",找到如下資料:
這種問題一般的原因:1.DB2COMM=TCPIP2.數(shù)據(jù)庫故障3.端口號(hào)被禁用
解決方案:1.看看端口號(hào)有沒有配置正確,看一下配置參數(shù)svcename跟services文件中配置的db2端口號(hào)是否一致,windows一般用50000,unix/linux一般用60000。
2.連接出錯(cuò)首先看看服務(wù)器ip 和端口寫對沒有。
ip如果沒錯(cuò)就要看看服務(wù)器的db2服務(wù)端口對不對。另外對于服務(wù)器下面這些也要注意。
檢查服務(wù)器的配置情況如下:
驗(yàn)證存在的DB2數(shù)據(jù)庫
db2 list db directory
db2 list db directory show detail
驗(yàn)證實(shí)例使用的通訊協(xié)議,查看DB2COMM變量
db2set-all
查看數(shù)據(jù)庫管理器的配置,查看SVCENAME(特指tcpip協(xié)議)
db2 get dbm cfg
查看/etc/services中,有無與上面對應(yīng)SVCENAME的端口,例如:
db2cDB2 50000/tcp
要確認(rèn)服務(wù)器是否在監(jiān)聽,可以用netstat-an 來查看端口是否處于LISTEN狀態(tài)。
查看我linux虛擬機(jī)上的db2數(shù)據(jù)庫端口設(shè)置:
[root@localhost ~]# cat /etc/services |grep db2c_db2inst1
db2c_db2inst150000/tcp
端口設(shè)置沒有問題,在看防火墻設(shè)置:
[root@localhost ~]# service iptables status
±í??£ofilter
Chain INPUT (policy ACCEPT)
num target prot opt source destination1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0state RELATED,ESTABLISHED2 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 destination1 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設(shè)置(一定要重啟,否則不生效),并再次查看防火墻端口設(shè)置信息(注意紅色標(biāo)記部分):
[root@localhost ~]# service iptables restart
清除防火墻規(guī)則: [確定]
把 chains 設(shè)置為 ACCEPT 策略: filter [確定]
正在卸載 Iiptables 模塊 [確定]
應(yīng)用 iptables 防火墻規(guī)則 [確定]
[root@localhost~]# service iptables status
±í??£ofilter
Chain INPUT (policy ACCEPT)
num target prot opt source destination1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0state RELATED,ESTABLISHED2 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 destination1 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工具連接數(shù)據(jù)庫,成功!
總結(jié)
以上是生活随笔為你收集整理的DB2连接不上mysql数据库_一次DB2数据库连接失败(SQLSTATE=08001)的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: srilm编译,
- 下一篇: MySQL-locate()函数