我正在创建一个java项目,我想使用derby数据库,并且我配置了数据库并创建了一个名为/home/user/TestDB
的数据库并创建了一个表user
并在其中插入3到4个值并编写代码以从中获取数据数据库,但当我连接达达基地我有连接拒绝错误,我使用
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)
我想你不是在你正在使用的特定端口启动你的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)连接字符串中的协议不正确
发生此错误只是因为您的数据库未连接。
NETBEANS
转到服务>数据库> Java DB>(右键单击)之后,只需右键单击数据库并连接数据库。
最佳方案
执行数据库程序
步骤1:需要启动第一个数据库服务器
打开命令shell并切换到将保存数据库的目录
文件(在下面的例子中,数据库将存储在
d:\ java2019 \数据库)
D:\ java2019 \ Database>“C:\ Program Files \ Java \ jdk1.8.0_60 \ db \ bin \ startNetworkServer”
3月13日星期三10:36:36 IST 2019:使用基本服务器安全策略安装安全管理器。 3月13日星期三10:36:37 IST 2019:Apache Derby网络服务器 - 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:使用基本服务器安全策略安装安全管理器。 3月13日星期三10:46:33 IST 2019:Apache Derby网络服务器 - 10.11.1.2 - (1629631)启动并准备接受端口1567上的连接
Step2:编译并执行java程序
打开另一个命令shell并切换到将保存数据库文件的目录。设置derbyrun.jar的类路径
set classpath =“。; C:\ Program Files \ Java \ jdk1.8.0_66 \ db \ lib \ derbyrun.jar”
第3步:最后需要停止数据库服务器
打开另一个命令shell并进行更改
D:\ java2019 \ Database>“C:\ Program Files \ Java \ jdk1.8.0_60 \ db \ bin \ stopNetworkServer”Wed Mar 13 10:56:04 IST 2019:Apache Derby Network Server - 10.11.1.2 - (1629631)关掉