2014-01-14 50 views
0

我试图做this tutorial,当我到了休眠的一部分,我得到这个错误:拒绝连接:连接错误使用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 

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

我有从MS SQL Server配置管理器(TCP端口是1433)的TCP-IP,但问题仍然存在。

我也关闭了一段时间的防病毒。

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

+0

这些事情总是由应该考虑的现有问题产生,但完全被忽略,因为没有人愿意负责修复它们。在这种情况下,我会发现它是一个巨大的红旗,你必须去stackoverflow,而不是能够问问你身边的人,或者检查文档,比如“如何设置你的开发环境”或者你正在处理的任何事情这里。 – Gimby

+0

我想我不理解你,你不了解我。再读一遍,我做了一个很大的假设 - 你在工作而不是在家里这样做。 – Gimby

回答

4

我会检查的东西以下步骤:

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

  • 我会检查SQL Server Configuration Manager以查看是否启用了TCP/IP通信。

  • 我会检查我的防火墙设置。也许SQL Server和客户端之间存在一些问题。

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

  • 如果以上所有的都正常播放,那么我会检查特定的SQL Server上的特权,在特定的数据库上,因为我想与连接的帐户。允许每个人都使用此数据库作为检查它是否是帐户权限问题的第一步。

希望我帮了忙!

+0

这是一个打字问题,不解决我的问题,我已经纠正它是一样的 –

+0

然后按照下一步... –

+0

我已经从防火墙allwed eclipse和java,我已经启动sqlsrvr和TCP/IP已打开并且没有更改。我如何检查最后两个步骤? –

2

localhost将永远是你的Java运行的服务器 - 它说“对话回到同一台机器”。

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

1

请检查下面

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

  3. 点击协议为SQLExpress

  4. 双击TCP/IP并单击IP地址选项卡

  5. 走到尽头,直到你看到所有IP

  6. 确保你看到的端口号1433下IPALL标题下的TCP端口配置。

  7. 如果未配置,请输入1433端口并单击应用。

  8. 您需要重新启动MS SQL服务器,现在尝试,它应该工作。

希望这能解决它。