Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IBMDB2—查找数据库的托管位置以进行JDBC连接?_Java_Db2 - Fatal编程技术网

Java IBMDB2—查找数据库的托管位置以进行JDBC连接?

Java IBMDB2—查找数据库的托管位置以进行JDBC连接?,java,db2,Java,Db2,如果我在db2控制台中创建一个数据库(create database CONNTEST),数据库将托管在哪里?我知道我的实例指向localhost:50000,但在我的JDBC应用程序con=DriverManager.getConnection中(url、用户、密码)其中url=jdbc:db2://localhost:50000/CONNTEST返回无效的数据库地址错误。有没有办法从db2控制台本身查看我的数据库托管在哪里?谢谢 可能是本地主机没有映射到您的IP地址或127.0.0.1。您可

如果我在db2控制台中创建一个数据库(create database CONNTEST),数据库将托管在哪里?我知道我的实例指向localhost:50000,但在我的JDBC应用程序
con=DriverManager.getConnection中(url、用户、密码)其中
url=jdbc:db2://localhost:50000/CONNTEST
返回无效的数据库地址错误。有没有办法从db2控制台本身查看我的数据库托管在哪里?谢谢

可能是本地主机没有映射到您的IP地址或127.0.0.1。您可以从尝试计算机的IP地址开始

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


如果这不起作用,可能是权限问题。数据库本身可能正在通过客户端IP、用户名和密码限制访问。例如,MySQL就是这样工作的。

可能是本地主机没有映射到您的IP地址或127.0.0.1。您可以从尝试计算机的IP地址开始

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


如果这不起作用,可能是权限问题。数据库本身可能正在通过客户端IP、用户名和密码限制访问。例如,MySQL就是这样工作的。

如果您可以运行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         =
数据库别名
字段将是您一直连接到的CONNTEST名称。您想知道
节点名
字段是什么。
数据库名称
字段可能不同,该字段将是数据库在服务器端实际调用的字段

获取节点名后,您将运行
db2listnodedirectory
。您将从数据库条目中查找与节点名称匹配的节点条目:

Node 1 entry:

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

在这里,您将看到
主机名
服务名
字段,这些字段为您提供了它所连接的主机和端口。

如果您可以运行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         =
数据库别名
字段将是您一直连接到的CONNTEST名称。您想知道
节点名
字段是什么。
数据库名称
字段可能不同,该字段将是数据库在服务器端实际调用的字段

获取节点名后,您将运行
db2listnodedirectory
。您将从数据库条目中查找与节点名称匹配的节点条目:

Node 1 entry:

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

在这里,您将看到
主机名
服务名
字段,它们为您提供了它所连接的主机和端口。

是否有办法通过托管数据库的db2控制台进行检查?我肯定它在听50000端口的声音。我不认为这是一个权限问题,因为如果我“连接到CONNTEST用户db2admin”并输入密码,它就会工作(与java提供的参数相同),您知道它的托管位置:根据您所说,它位于您的本地计算机上。这也是JavaURL所说的。问题可能是它无法理解localhost的含义。我会试试你的IP地址,看看是否有用。没有翻译,没有歧义。有没有办法通过数据库所在的db2控制台进行检查?我肯定它在听50000端口的声音。我不认为这是一个权限问题,因为如果我“连接到CONNTEST用户db2admin”并输入密码,它就会工作(与java提供的参数相同),您知道它的托管位置:根据您所说,它位于您的本地计算机上。这也是JavaURL所说的。问题可能是它无法理解localhost的含义。我会试试你的IP地址,看看是否有用。没有翻译,没有歧义。