IBM DB2 - 查找为JDBC连接托管数据库的位置?

时间:2017-05-08 17:53:03

标签: java db2

如果我在db2控制台(创建数据库CONNTEST)中创建数据库,那么数据库将在何处托管?我知道我的实例指向localhost:50000,但是在我的JDBC应用程序con = DriverManager.getConnection (url, user, password);中,url = jdbc:db2://localhost:50000/CONNTEST返回了无效的数据库地址错误。有没有办法从db2控制台本身查看我的数据库托管位置?谢谢!

2 个答案:

答案 0 :(得分:1)

如果可以运行db2命令行,则可以弄清楚数据库的编目方式,然后按原样返回主机地址。我假设您的数据库不是大型机数据库......这会增加我不会反复使用的目录的复杂性。

首先,你将运行db2 list database directory,你会得到一些像这样的输出:

Database 1 entry:

 Database alias                       = DB1
 Database name                        = DB1
 Node name                            = DB1
 Database release level               = 14.00
 Comment                              =
 Directory entry type                 = Remote
 Catalog database partition number    = -1
 Alternate server hostname            =
 Alternate server port number         =

database alias字段将是您连接到的CONNTEST名称。您想知道node name字段是什么。 database name字段可以不同,该字段将是服务器端实际调用的数据库。

获取节点名称,您将运行db2 list node directory。您将查找与数据库条目中的节点名称匹配的节点条目:

Node 1 entry:

 Node name                      = DB1
 Comment                        =
 Directory entry type           = LOCAL
 Protocol                       = TCPIP
 Hostname                       = db2host.domain.local
 Service name                   = 50000

在这里,您会看到hostnameservice name字段,这些字段为您提供了它所连接的主机和端口。

答案 1 :(得分:0)

可能是localhost未映射到您的IP地址OR 127.0.0.1。您可以先尝试使用机器的IP地址。

确保您的DB2实例正在侦听端口50000.这是默认设置,但值得检查。

如果这不起作用,也许这是一个许可问题。数据库本身可能会限制客户端IP,用户名和密码的访问。例如,它是如何与MySQL协同工作的。