DB2无法连接到服务器

Ale*_*lex 0 database db2 database-connection

我想在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         =
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

从客户端,如果我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
Run Code Online (Sandbox Code Playgroud)

这意味着出了问题.我为节点尝试了几件事,没有任何作用我不知道发生了什么以及如何解决它.

谢谢你的帮助

mus*_*cio 12

首先,您不能ping服务器并且nmap看不到开放端口这一事实意味着您的问题,至少在此时,是在DB2之外.解决网络问题后,您可以按照以下步骤通过TCP/IP建立与DB2数据库的远程连接.

1)可选.您可以使用服务名称或端口号来配置DB2实例.如果要使用服务名称,请在服务器上添加一行,/etc/services类似于db2c_db2inst1 50000/tcp,将服务名称"db2c_db2inst1"分配给端口50000.

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中定义的节点名称("任何").

7)在远程客户端验证连接:db2 connect to <your database name> user <user name> using <password>