在端口1527上连接到服务器localhost时出错,并显示消息Connection refused

时间:2017-08-19 06:40:32

标签: java derby

我正在创建一个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)

3 个答案:

答案 0 :(得分:5)

我认为您没有在您正在使用的特定端口启动derver server。您需要使用默认端口1527

的localhost上的以下命令启动服务器
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)关闭