我想在Windows 7机器上设置db2服务器,我无法从远程连接到数据库,只能从本地连接。我想我可能会错过一些配置。
1)我关闭了防火墙 2)我的数据库信息是:
数据库2条目:
Database alias = SAMPLE
Database name = SAMPLE
Local database directory = C:
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
netstat -a
命令的部分输出是:
TCP [::]:49155 WIN-whatever:0 LISTENING
TCP [::]:49164 WIN-whatever:0 LISTENING
TCP [::]:49165 WIN-whatever:0 LISTENING
TCP [::]:50000 WIN-whatever:0 LISTENING
如果我ping我的服务器,它从客户端它没有响应
此外,如果我用nmap -sV <server_ip_address>
扫描它,它不会返回我使用它的开放端口和服务
从客户端到连接,我运行以下命令:
db2 list node directory
SQL1027N The node directory cannot be found.
catalog tcpip node <i am not sure what does here> remote <server_ip_address> server <port_number>
no output
这意味着出了点问题。我为节点尝试了几件事,没有任何作用 我不知道发生了什么以及如何解决它。
感谢您的帮助
答案 0 :(得分:12)
首先,您无法ping服务器且nmap
没有看到开放端口的事实意味着您的问题,至少在此时,是在DB2之外。解决网络问题后,您可以按照以下步骤设置通过TCP / IP与DB2数据库的远程连接。
1)可选。您可以使用服务名称或端口号来配置DB2实例。如果要使用服务名称,在服务器上添加一行/etc/services
,类似于db2c_db2inst1 50000/tcp
,它将服务名称“db2c_db2inst1”分配给端口50000。 / p>
2)在服务器上更新DB2实例配置:db2 update dbm cfg using svcename db2c_db2inst1
(如果不使用服务名称,则为db2 update dbm cfg using svcename 50000
)。验证:db2 get dbm cfg | grep SVCENAME
。
3)在服务器上更新DB2注册表变量:db2set DB2COMM=TCPIP
。验证:db2set DB2COMM
。
4)在服务器上重新启动实例:问题db2stop force
,然后db2start
。
5)在远程客户端上,假设安装了DB2客户端软件,请发出db2 catalog tcpip node whatever remote <your server IP address> service <your DB2 port number>
。请注意,节点名称(本例中的“任何”)限制为8个ASCII字符。
6)在远程客户端问题db2 catalog database <your database name> at node whatever
上,引用您在步骤5中定义的节点名称(“what”)。
7)在远程客户端上验证连接:db2 connect to <your database name> user <user name> using <password>
答案 1 :(得分:0)
尝试在实例端口上执行telnet以检查从客户端到服务器的所有内容是否正确
telnet DB2-Server-name 50000
其中DB2-Server-name是服务器名称或IP地址。确保您可以获得服务器。 50000是最常用的DB2端口,但您必须检查配置。
连接到服务器后,可以使用上一个答案配置节点。