我正在创建一个java项目,我想使用derby数据库,并且我配置了数据库并创建了名为/home/user/TestDB
的数据库并创建了一个表user
并插入了3到4个值进入它并编写一个代码来从数据库中获取数据但是当我连接dada base时我得到了连接拒绝错误,我正在使用
DB URL : jdbc:derby://localhost:1527/home/user/TestDB
错误日志:
java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at test.derby.util.DerbyUtil.getConnecation(DerbyUtil.java:34)
at test.derby.dao.TestDAO.getData(TestDAO.java:20)
at test.derby.dao.TestDAO.main(TestDAO.java:39)
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.
at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
at org.apache.derby.client.am.Connection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)
... 6 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
答案 0 :(得分:5)
我认为您没有在您正在使用的特定端口启动derver server
。您需要使用默认端口1527
startNetworkServer -h 0.0.0.0
如果你想改变你可以在命令下面使用的端口:
startNetworkServer -p 3301 // new port number
了解更多信息,请参阅以下链接;
http://www.vogella.com/tutorials/ApacheDerby/article.html
可能由于以下原因而发生此错误:
1)不允许防火墙进行主机端口组合
2)客户端和服务器,它们中的任何一个或两个都不在网络中。
3)服务器正在运行但没有侦听端口,客户端正在尝试连接。
4)服务器未运行。
5)连接字符串中的协议不正确
答案 1 :(得分:0)
仅由于您的数据库未连接而发生此错误。
NETBEANS
转到“服务”>“数据库”>“ Java DB”>(右键单击) 之后,只需右键单击您的数据库并连接数据库。
答案 2 :(得分:0)
最佳解决方案
执行数据库程序
步骤1: 首先需要启动数据库服务器
打开命令外壳,然后切换到将保存数据库的目录
文件(在下面的示例中,数据库将存储在
中D:\ java2019 \ Database)
D:\ java2019 \ Database>“ C:\ Program Files \ Java \ jdk1.8.0_60 \ db \ bin \ startNetworkServer”
3月13日星期三10:36:36 IST 2019:使用基本服务器安全策略安装了安全管理器。 IST 2019年3月13日星期三10:36:37-Apache Derby Network Server-10.11.1.2-(1629631)已启动并准备接受端口1527上的连接
默认端口号为1527,我们还可以通过以下方式更改端口号
cmd
D:\ java2019 \ Database>“ C:\ Program Files \ Java \ jdk1.8.0_60 \ db \ bin \ startNetworkServer” -p 1567
3月13日星期三10:46:33 IST 2019:使用基本服务器安全策略安装了安全管理器。 IST 2019年3月13日星期三10:46:33-Apache Derby Network Server-10.11.1.2-(1629631)已启动并准备接受端口1567上的连接
第二步: 编译并执行Java程序
打开另一个命令外壳,然后转到将保存数据库文件的目录。设置derbyrun.jar的类路径
set classpath =“ .; C:\ Program Files \ Java \ jdk1.8.0_66 \ db \ lib \ derbyrun.jar”
第3步: 最后需要停止数据库服务器
打开另一个命令外壳并进行更改
D:\ java2019 \ Database>“ C:\ Program Files \ Java \ jdk1.8.0_60 \ db \ bin \ stopNetworkServer” IST 2019年3月13日星期三10:56:04:Apache Derby网络服务器-10.11.1.2-(1629631)关闭