db2安裝完成后,tcp/ip連接端口默認(rèn)為50000,可通過下面的方法確認(rèn):
1、使用命令 db2 get dbm cfg |find "SVCENAME" 查找到TCP/IP 服務(wù)名
2、到系統(tǒng)配置文件里找到service name 對應(yīng)的 port number
windows:查看 c:\windows\system32\drivers\etc\services
aix: 查看 /etc/services
如下:
DB2_DB2 60000/tcp
DB2_DB2_1 60001/tcp
DB2_DB2_2 60002/tcp
DB2_DB2_END 60003/tcp
db2c_DB2 50000/tcp
3、使用 netstat -an 命令查找tcp/ip 服務(wù)的端口
4、修改端口號
直接修改services文件中當(dāng)前服務(wù)名對應(yīng)的端口號
如:db2c_DB2 50000/tcp
然后重啟數(shù)據(jù)庫即OK db2stop db2start
5、另外附上一個關(guān)于linux系統(tǒng)下的查找方法(摘抄帖子):
In JDBC configurations for WPA, you have to specify the port that DB2 is listening on. I usually look for /etc/services or try one of 50000/50001 and it usually works. In SUSE Linux, both the solutions did not work and there was another process (Multithreaded routing toolkit aka mrt) was listening on port 50000.
So how do we find out the DB2 port in a reliable way? Read on...
Step 1: Set the DB2 environment.
$ . ~db2inst1/sqllib/db2profile
Step 2: Find the service name for DB2 instance. It basically involves running "db2 get dbm cfg" command and finding a line containing SVCENAME.
$ svc=`db2 get dbm cfg | grep SVCENAME | cut -d= -f2 | awk '{print $1}'`
Step 3: Find the service name that you got from Step 2 in /etc/services or %SYSTEMROOT%\system32\drivers\etc\services. That is the port DB2 is listening on. $ grep $svc /etc/services
Hope you find this useful.
用sqoop做測試,發(fā)現(xiàn)端口號50000被占用了,所以就更改了一下DB2的端口號。
第一步,登錄DB2數(shù)據(jù)庫的實例用戶,我這里是db2inst1
db2 get dbm cfg|grep SVCENAME
可以看到對應(yīng)的SVCENAME的名稱是什么。


這里容易出現(xiàn)一個問題。按照網(wǎng)上有人說的,會將SVCENAME改為端口號,那個是錯誤的。一定要將這個名稱和services中的名稱統(tǒng)一。
第二步,退回到root用戶,
vim /etc/services,找到對應(yīng)的SVCENAME的名稱所對應(yīng)的端口號。
我這里直接編輯成50001


第三步,先關(guān)數(shù)據(jù)庫,再開就可以了。
db2stop
db2start
實際上沒有復(fù)雜的步驟,只是好多人寫的比較的亂,還不加解釋說明,所以坑了些。
可以通過db2 get dbm cfg,查詢數(shù)據(jù)庫管理器配置參數(shù),就可以查到端口號或端口名。
示例:
$ db2 get dbm cfg | grep -i svcTCP/IP Service name (SVCENAME) = 50000
50000就是端口號了。
如果查到的是端口名,可以通過網(wǎng)絡(luò)服務(wù)配置文件來找到對應(yīng)關(guān)系。
示例:
$ db2 get dbm cfg | grep -i svc
TCP/IP Service name (SVCENAME) = db2c_DB2
這時,就需要查找db2c_DB2對應(yīng)的端口號了。
$ cat /etc/services | grep db2c_DB2
db2c_DB2 60000/tcp
這個60000就是端口號了。
如果DB2是裝在windows的server上,那么就需要查找這個配置文件了,C:\WINDOWS\system32\drivers\etc\services格式:db2c_DB2 50000/tcp