我正在尝试将数据库与java项目连接起来。在阅读了一些教程和课程支持后,我了解到我需要在管理控制台下创建一个新的数据源。
所以,我已登录管理控制台,然后导航到资源 - > 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 但它仍然不起作用。
答案 0 :(得分:30)
您是否正在运行Derby Server?
您很可能在没有实际服务器在端口1527上运行的情况下尝试连接数据库。
您可以尝试使用命令行/ linux shell建立连接 - 具体取决于您使用的操作系统。
如果你愿意,试试这个:
您应该收到一条消息,上面写着:
2012-08-29 10:57:16.559 GMT:使用基本服务器安全策略安装安全管理器。 2012-08-29 10:57:16.809 GMT:Apache Derby Network Server - 10.6.2.1 - (999685)已启动并准备接受端口1527上的连接
如果你不这样做,那么也许你可以查看你的防火墙(这里邀请评论:)
如果这样做,那么您可以使用以下方法测试您的连接:
输入以下内容:
connect 'jdbc:derby://localhost:1527/MyDB';
...然后按Enter键
如果一切顺利,你会得到“ij>”提示回来。
从这里你可以输入一些SQL查询来进一步测试连接。
如果没有,那么可能还有其他一些问题。
如果您是第一次在德比中创建数据库,则必须使用它来代替上面的步骤5:
connect 'jdbc:derby://localhost:1527/MyDB;create=true';
...然后按Enter键
希望在做完这些事情之后,你会得到一个联系。在最后一个实例中,您至少会获得一个名为MyDB的新数据库,该数据库在Derby Server上处于活动状态。如果你的原始数据库(MyDB)相对较小,那么为了你需要它的任何目的再次重建它可能会更快。
除此之外,如果您确实建立了连接,那么您可以尝试使用其他用于数据库开发的工具,因为您至少可以消除连接出现问题的可能性。
请务必检查从步骤4报告的端口号。通常是1527.如果没有,则更改步骤5中的端口号(或新数据库的替换命令),以便在来自德比的消息。
希望这会有所帮助并祝你好运:)
Wayne Riesterer
答案 1 :(得分:1)
您是否定义了身份验证别名?似乎与下面链接中的问题相同;
此外,如果您检查SystemOut.log,您可能会看到一条错误消息,告知未设置哪个属性;
{“08001”,“未设置必需的Derby DataSource属性{0}。”,“40000”},
答案 2 :(得分:1)
查看apache derby文档here .....
配置环境以使用Derby Network Client JDBC驱动程序
要使用Derby Network Client JDBC
驱动程序,请将CLASSPATH
设置为包含下面列出的jar文件:
您可以使用以下命令显式设置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>连接
jdbc:derby://localhost:1527/Chapter01DB;create=true;
答案 3 :(得分: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;