与主机localhost,端口1433的TCP / IP连接失败。错误:“连接被拒绝:连接

时间:2014-10-22 16:45:34

标签: java sql sql-server

我想将Java类文件与SQL Server 2008连接。我已使用SQL服务器身份验证使用登录:sa,传递:123456。但我收到连接错误。

static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String dburl = "jdbc:sqlserver://localhost\\SQL2008:1433;Database=Java";
static String user = "sa";
static String password = "123456";


public static void update() throws Exception{
    String sql = "UPDATE Categories SET Id='COM' WHERE Id='LAP'";

    Class.forName(driver);
    Connection conn = DriverManager.getConnection(dburl, user, password);
    Statement stmt = conn.createStatement();
    stmt.executeUpdate(sql);
    conn.close();
}



public static void main(String[] args) throws Exception {
    Basic.update();
}


  Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1048)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:829)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:712)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Tutorials.jdbc.Basic.update(Basic.java:48)
at Tutorials.jdbc.Basic.main(Basic.java:72)

5 个答案:

答案 0 :(得分:2)

回答这个问题可能有点晚了,但这样做是为了我自己的利益。

可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer\SuperSocketNetLib\Tcp

的注册表中找到通过JDBC连接的实际TCP端口

使用此值连接到SQL Server。

例如 "jdbc:sqlserver://localhost\SQLEXPRESS:49922;databaseName=db;user=user;password=secret"

还要确保在服务器配置工具中启用了TCP连接。

答案 1 :(得分:0)

确保您有驱动程序jar文件并将dburl更改为此,如下所述

试试这个

  String dburl ="jdbc:sqlserver://SQL2008:1433;DatabaseName=Java;user=sa;Password=123456";

答案 2 :(得分:0)

我认为你的dburl可能会出错。 请尝试使用此网址。

String dburl= "jdbc:sqlserver://localhost\\SQL2008:1433;" +
     "databaseName=Java;user=sa;password=123456";

答案 3 :(得分:0)

拒绝TCP / IP连接。

  1. 运行NETSTAT -A以查看已打开的端口列表(他们会说LISTENING)如果1433不在其中,则SQL服务器未运行或isn'听那个港口。从那里跟随Michael Todd的建议。

  2. 如果列表中有1433,请检查本地防火墙,看它是否允许与localhost建立连接和/或允许连接到1433.

  3. 您可以尝试TELNET 1433并查看它是否连接(您应该得到一个空白屏幕,左上角有一个光标闪烁。)(您可能必须在程序和功能中启用telnet客户端。如果是这样,那么您的代码就会出现问题。

答案 4 :(得分:0)

感谢您的帮助,我解决了我的问题,它不是错误的字符串dburl =&#34; jdbc:sqlserver:// localhost \ SQL2008:1433;数据库:Java&#34 ;

它的错误端口1433在SQL Server 2008中没有连接 我在哪里找到协议TCP / IP,如果禁用则启用它单击TCP / IP,我找到它的属性。

在此属性中删除所有TCP动态端口并将值1433添加到所有TCP端口并重新启动SQL Server服务&gt; SQL Server

完成......

感谢大家的帮助!