数据源 derby - 连接被拒绝

Posted

技术标签:

【中文标题】数据源 derby - 连接被拒绝【英文标题】:data sources derby - connection refused 【发布时间】:2012-05-12 08:23:28 【问题描述】:

我正在尝试将数据库与 java 项目连接。在阅读了一些教程和课程支持后,我了解到我需要在 Admin Console 下新建一个数据源。

所以,我已经登录到管理控制台,然后导航到资源 -> JDBC -> 数据源 -> 新建;填写这些字段,当我测试连接时,我得到的错误是这个:

消息 数据源 MyDB 上的测试连接操作失败 节点 RO2CVG6CNode01 上的服务器 server1,但有以下异常: java.sql.SQLNonTransientException:java.net.ConnectException:错误 使用消息 Connection 连接到端口 1527 上的服务器 localhost 拒绝:connect.DSRA0010E:SQL 状态 = 08001,错误代码 = 40,000。 查看 JVM 日志以获取更多详细信息。

我不知道问题出在哪里。也许使用数据库名称: jdbc:derby:D:\MyDB ?任何人都可以帮助我吗? 在this tutorial 之后,我也尝试仅使用 MyDB。 但是还是不行。

【问题讨论】:

在端口 1527 上连接到服务器 localhost 时出错 --> 此错误表示端口 1527 上没有运行数据库。 确保服务器正在运行:myeclipseide.com/documentation/quickstarts/blueedition/… 此链接将很有帮助:***.com/a/30272670/3728901。如果我们一步一步做得正确,我们将避免错误。 【参考方案1】:

    下载德比到以下位置:

    /home/ <user_directory> /apache-derby/
    

    如下设置类路径/路径:

    export DERBY_HOME=/home/<user_directory>/magister-database
    
    export DERBY_INSTALL=/home/<user_directory>/apache-derby/db-derby-10.11.1.1-bin
    
    export CLASSPATH=$DERBY_INSTALL/lib/derbyclient.jar:$DERBY_INSTALL/lib/derbytools.jar:$CLASSPATH
    

    启动网络服务器:

    /home/<user_directory>/apache-derby/db-derby-10.11.1.1-bin/bin/startNetworkServer
    

    运行derby命令行如下:

    java org.apache.derby.tools.ij
    
    connect 'jdbc:derby://localhost:1527//home/<user_directory>/<database-directory>/<database-name>';
    
    show tables;
    
    disconnect;
    
    exit;
    

【讨论】:

【参考方案2】:

查看 apache derby 文档here.....

配置环境以使用 Derby Network Client JDBC 驱动程序

要使用 Derby Network Client JDBC 驱动程序,请将您的 CLASSPATH 设置为包含下面列出的 jar 文件:

derbyclient.jar:包含 JDBC 驱动程序 derbytools.jar:可选,提供ij工具

您可以使用如下所示的命令显式设置您的CLASSPATH: 窗户:

C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derbyclient.jar;%DERBY_INSTALL%\lib\derbytools.jar;.

UNIX:

$ export CLASSPATH=$DERBY_INSTALL/lib/derbyclient.jar:$DERBY_INSTALL/lib/derbytools.jar:.

然后在提示符下输入 ij 命令后尝试创建这样的数据库.....ij> connect

jdbc:derby://localhost:1527/Chapter01DB;create=true;

【讨论】:

【参考方案3】:

Derby Server 是否正在运行?

很有可能您正在尝试连接到数据库,而实际服务器没有在端口 1527 上运行。

您可以尝试使用命令行/linux shell 建立连接 - 取决于您使用的操作系统。

如果你愿意,试试这个:

    打开命令提示符 导航到您的 Derby 安装目录 导航到“bin”目录(注意:如果存在,请进一步导航到networkServer文件夹) 输入“startNetworkServer”并回车

您应该收到这样的消息:

2012-08-29 10:57:16.559 GMT:使用基本服务器安全策略安装的安全管理器。 2012-08-29 10:57:16.809 GMT:Apache Derby 网络服务器 - 10.6.2.1 - (999685) 已启动并准备好接受端口 1527 上的连接

如果你不这样做,那么也许你可以检查你的防火墙(这里邀请 cmets :)

如果你这样做了,那么你可以使用以下方法测试你的连接:

    打开另一个命令提示符 导航到您的 Derby 安装目录 导航到“bin”目录 输入“ij”并回车

    键入以下内容:

     connect 'jdbc:derby://localhost:1527/MyDB';
    

    ...然后按 Enter 键

如果一切顺利,你会得到“ij>”提示。

您可以从这里输入一些 SQL 查询来进一步测试连接。

如果不是,那么可能还有其他问题。

如果您是第一次在 derby 中创建数据库,那么您必须使用它来代替上面的第 5 步:

     connect 'jdbc:derby://localhost:1527/MyDB;create=true';

...然后按 Enter 键

希望在做完这些事情之后,你会得到一个连接。在最后一个实例中,您至少将获得一个名为 MyDB 的新数据库,该数据库在 Derby Server 上处于活动状态。如果您的原始数据库 (MyDB) 相对较小,那么为您需要的任何目的再次重建它可能会更快。

此外,如果您确实建立了连接,那么您可以尝试用于数据库开发的其他工具,因为您至少消除了连接问题的可能性。

请务必检查第 4 步报告的端口号。这通常是 1527。如果没有,请更改第 5 步中的端口号(或新数据库的替换命令),无论是在来自德比的消息。

希望这会有所帮助,祝你好运:)

韦恩·里斯特勒

【讨论】:

是的,";create=true" 是我的赢家!【参考方案4】:

您是否定义了身份验证别名?似乎与下面链接中的问题相同;

http://www.webspheretools.com/sites/webspheretools.nsf/docs/Error%20when%20testing%20a%20JDBC%20connection%20to%20Derby

此外,如果您检查 SystemOut.log,您可能会看到一条错误消息,说明未设置哪个属性;

"08001","未设置必需的 Derby 数据源属性 0。","40000",

【讨论】:

以上是关于数据源 derby - 连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

如何连接 Derby 数据库和 Servlet?

无法同时从两个进程连接 derby 数据库

无法在 MyEclipse 中使用 struts 连接 Derby 数据库

Derby 客户端 jdbc 驱动程序连接错误:无法创建数据库“示例”

找不到 Derby 数据库,如何在 Java 中连接

连接SQL SERVER数据库提示不存在或访问被拒绝