这个问题是在刚开始使用Java连接Sql Server 2008时遇到的,网上一搜关于这个问题的文章已经很多了。
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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestSql.main(TestSql.java:11)
一般解决办法为下面的步骤:
Sql Server配置管理器→SQL Server网络配置→设置TCP/IP协议状态为已启动,右键TCP/IP协议→属性→IP地址→最后选项IPALL,将TCP端口设置为1433(这里也可以是其他端口,但是在程序里面必须与之对应,一般为1433)。重新启动SQL Server服务。
另外在引用驱动包的时候注意要引用jdbc4.jar