Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器
错误原因如下:
Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473) at vo.NewsManager.main(NewsManager.java:17) Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
在命令行中输入:telnet localhost 1433,连接不上:
![](http://hi.csdn.net/attachment/201108/8/0_13127814710Uz1.gif)
检查下配置:服务和连接的外围应用配置器
![](http://hi.csdn.net/attachment/201108/8/0_1312781710C3Tu.gif)
已经选中了“同时使用TCP/IP和named pipes(B)”
![](http://hi.csdn.net/attachment/201108/8/0_131278179644M4.gif)
下面再检查SQL Server Configuration Manager
实例名为“SQLEXPRESS”下的TCP/IP已经开启了:
![](http://hi.csdn.net/attachment/201108/8/0_13127820823yB3.gif)
右击“TCP/IP”选择“属性”(或双击“TCP/IP”),选择“IP地址”选项卡,最下面有个“IPALL”:
![](http://hi.csdn.net/attachment/201108/8/0_1312782263w2yw.gif)
问题就在这里: 我没有设置TCP端口,改过之后如下图:
![](http://hi.csdn.net/attachment/201108/8/0_1312782362EYKZ.gif)
再看看“SQL Native Client配置”:
![](http://hi.csdn.net/attachment/201108/8/0_1312782538UW96.gif)
双击“TCP/IP”:
![](http://hi.csdn.net/attachment/201108/8/0_13127826077U4B.gif)
一切正确。现在重启服务:
![](http://hi.csdn.net/attachment/201108/8/0_1312782702n9mk.gif)
右击“SQL Server (SQLEXPRESS)”,选择重新启动。
再回到命令行下,键入:telnet localhost 1433
![](http://hi.csdn.net/attachment/201108/8/0_1312782842wVdR.gif)
显示黑屏,如上图,说明已经成功了!
最后在Eclipse下用JDBC连接,可以正确连接到SQL Server 2005啦。
SQL Server 2008的外围应用配置器到哪里去了
在SQL Server 2005中,微软增加了一些新的工具,其中有一个就是“外围应用配置器”,它的主要目的是保证了服务器的默认安全性。
但这个工具在SQL Server 2008已经找不到了。原来是合并到了一个所谓的“方面”工具里面了
在服务器节点上,点击右键,选择“方面”,然后可以看到有很多方面的设置,其中有一项就是“外围应用配置器”
这样做的好处,是可以导出为策略,然后可以复用。主要是方便管理吧
点击右键,可以进行“评估”