db2客戶端因埠問題連線不上db2資料庫解決辦法
1. 使用db2例項使用者在伺服器執行,檢視db2的tcpip服務名稱:
linux:db2 get dbm cfg | grep -i "SVCENAME"
windows:db2 get dbm cfg | find "SVCENAME"
執行結果:
D:\Program Files\IBM\SQLLIB\BIN>db2 get dbm cfg | find "SVCENAME"
TCP/IP 服務名稱 (SVCENAME) = db2c_DB2
2.查詢tcpip服務對應的埠:
linux:grep db2c_DB2 /etc/services
windows:find "db2c_DB2" c:\windows\system32\drivers\etc\services
執行結果:
D:\Program Files\IBM\SQLLIB\BIN>find "db2c_DB2" c:\windows\system32\drivers\etc\services
---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\SERVICES
db2c_DB2 50000/tcp
3.檢視該埠是否被監聽:
linux:netstat -an | grep 50000
windows:netstat -an | find "50000"
執行結果(埠有被監聽):
D:\Program Files\IBM\SQLLIB\BIN>netstat -an | find "50000"
TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING
TCP [::]:50000 [::]:0 LISTENING
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