繁体   English   中英

连接被拒绝:Java + Hibernate中的连接错误

[英]Connection refused: connect Error in Java + Hibernate

我正在尝试做本教程 ,当我进入休眠部分时,出现以下错误:

java.sql.SQLException: Network error IOException: Connection refused: connect
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:436)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataS
ource.java:146)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(Wrap
perConnectionPoolDataSource.java:195)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(Wrap
perConnectionPoolDataSource.java:184)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourceP
oolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.ja
va:1086)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAc
quiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.j
ava:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(Basic
ResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolA
synchronousRunner.java:648)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.jav
a:288)
    at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:331)
    ... 10 more

这是访问数据库的hibernate.cfg.xml部分:

<!--Database connection settings-->
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;databaseName=MyTut1db</property>
<property name="connection.username">sop1</property>
<property name="connection.password">myPW1</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

用户sop1在MS SQL Server 2012 Express版本中创建为:

CREATE LOGIN sop1
    WITH PASSWORD = 'myPW1';
USE MyTut1db;
GO
CREATE USER sop1 FOR LOGIN sop1;
GO 

数据库属性如下图所示: 数据库属性

我已禁用MS SQL Server配置管理器中的TCP-IP(TCP端口为1433),但问题仍然存在。

我还关闭了防病毒软件一段时间。

我正在寻求帮助:那还能是什么? 如何验证用户? 我怎么知道localhost:1433是正确的服务器?

我将按照以下步骤检查内容:

  • 确保SQL Server已启动并正在运行 检查您正在运行的服务,以查看SQL Server服务是否已启动。

  • 我将检查SQL Server配置管理器,以查看是否启用了TCP / IP通信。

  • 我会检查防火墙设置 SQL Server和客户端之间可能正在发生某种情况。

  • 我将检查来自同一客户端的另一个应用程序是否可以连接到同一服务器。 然后,我将检查连接字符串的差异

  • 如果以上所有操作均正常进行,那么我将检查与我尝试连接的帐户在特定SQL Server,特定数据库上的特权 允许所有人使用此数据库作为检查它是否是帐户权限问题的第一步。

希望我能帮上忙!

localhost将始终是您的Java在其上运行的服务器-表示“与同一台计算机对话”。

如果您的数据库托管在其他服务器上,则需要将该服务器名称放入配置中。

请检查以下

  1. 单击开始>程序-> Microsoft Sql Server 2008 R2->配置工具-> Sql Server配置管理器
  2. 单击Sql Server网络配置

  3. 单击SQLExpress的协议

  4. 双击“ TCP / IP”,然后单击“ IP adrress”选项卡

  5. 直到最后看到IP ALL

  6. 确保您看到IPALL标头下的TCP端口下配置了端口号1433。

  7. 如果未配置,请输入1433端口,然后单击“应用”。

  8. 您需要重新启动MS sql服务器并立即尝试,它应该可以工作。

希望这能解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM