本文转载于:file:///C:/Users/Administrator/Desktop/[%E8%BD%AC%E8%BD%BD]%E9%80%9A%E8%BF%87%E7%AB%AF%E5%8F%A3%201433%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E4%B8%BB%E6%9C%BA%20localhost%20%E7%9A%84%20TCP%20IP%20%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E3%80%82%E9%94%99%E8%AF%AF%20%E2%80%9CConnection%20refused%20%20connect%E3%80%82%20-%20%E7%88%AA%E5%93%87%E5%93%A5%E7%9A%84%E7%88%AA%E5%93%87%E5%B2%9B%20-%20ITeye%E6%8A%80%E6%9C%AF%E7%BD%91%E7%AB%99.htm
ERROR:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
最近要学数据库, 老师用的是microsoft sqlserver 2005, 我是学java的, 一直都 JDBC来连oracle数据库的,这次我装了 microsoft sqlserver 2005,想用 JDBC 来连 microsoft sqlserver 2005, 没想出了这样的问题:
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:185) at com.luoying.TestSQLServer2.main(TestSQLServer2.java:15)
我的代码如下:
import java.sql.*;
public class TestSQLServer2 {
public static void main(String[] args) { Connection ct = null; Statement sm = null; ResultSet rs = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ct = DriverManager.getConnection("jdbc:sqlserver://localhost;database=bbs;","sa","62280789"); sm = ct.createStatement(); rs = sm.executeQuery("select * from stu"); while(rs.next()) { System.out.println(rs.getString(1)); } }catch (Exception e) { e.printStackTrace(); }finally { try { if(rs != null) { rs.close(); rs = null; } if(sm != null) { sm.close(); sm = null; } if(ct != null) { ct.close(); ct = null; } }catch (Exception e) { e.printStackTrace(); } } } }
近两天都 在网上搜索,加上自己的一点点探索, 终于把问题解决了!但是这两天的郁闷 无处发泄,所以就把它写下来让自己回味!! 如有雷同,纯属巧合!
解决方法 如下 :
从“开始”里的“所有程序” 里打开 “microsoft sqlserver ”的 SQL Server Configuration Manager,
跳出这个窗口
然后我就查看了 SQL Server 2005 网络配置, 下面有个 MSSQLSERVER 的协议, 我一看右边 的那个 TCP/IP 竟然是 禁用 状态 ,当时我就想 应该是这里出来问题, 我就把它给启用了。
启用前:
启用后:
然后我又去看了一下 SQL Nativer Client 配置下的东东,查看了
这样我就确保了端口是 1433 , 并已经打开了……
然后我就把 SQL Server(MSSQLSERVER) 服务 重启了!