到主机localhost端口1433的TCP/IP连接出现故障错误,需要帮助



我得到的完整错误:

到主机localhost端口1433的TCP/IP连接失败。错误:"连接超时。请验证连接属性。确保SQL Server实例在主机上运行并接受端口上的TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。".

我已经使用端口1433检查了TCP/IP是否已启用,并且TCP动态端口是否为空。我已禁用windows防火墙。

这是我的代码:

import java.sql.*;
public class DBConnect {


public static void main(String[] args) {
    // TODO Auto-generated method stub
    String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=TestDB1;instance=SQLSERVER;encrypt=true;TrustServerCertificate=true;";
    String user = "sa";
    String pass = "";
    try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    Connection myConn = DriverManager.getConnection(dbURL, user, pass);
    try {
    Statement myStmt = myConn.createStatement();
    try {
    ResultSet myRs = myStmt.executeQuery("Select * from Login");

        while (myRs.next())
        {
            System.out.println(myRs.getString("Username"));
            System.out.println(myRs.getString("Password"));
        }
    }
    catch (Exception e)
    {
        System.out.println("Error with query");
    }
    }
    catch (Exception e)
    {
        System.out.println("Error connecting to database");
    }
    }
    catch (Exception e)
    {
        System.out.println(e);
    }
}

}

是否启用了"命名管道"one_answers"TCP/IP"

  1. 打开"Sql Server Configuration Manager"应用程序。

  2. 在左侧窗格中,转到"SQL Server网络配置"->'[实例名称]的协议

  3. 右键单击"命名管道"one_answers"TCP/IP",然后选择"启用"。

您使用了正确的端口吗

  1. 双击"TCP/IP"

  2. 选择"IP地址"选项卡

  3. 滚动至IPAII。您的端口号在这里。


  1. 重新启动"SQL Server([实例名称])"窗口服务

此错误通常发生在SQL server不接受TCP/IP连接时,请尝试以下步骤,它肯定会起作用。

1) 打开"运行并添加"命令SQLServerManager15.2.msc2) 点击网络配置;MSSQLSERVER协议";3) 选择协议名称-";TCP/IP";并确保它是启用的,如果不是,请启用它。4) 检查属性并在IP地址选项卡中查找端口。

重新启动服务器,它应该工作

我查看ERRORLOG文件以获取故障排除信息。此文件通常位于:

C:Program FilesMicrosoft SQL ServerMSSQL<nn>.<instance name>MSSQLLogERRORLOG

<nn>是SQL Server版本号,<instance name>是实例名称。文件开头包含有用的信息:

2023-04-01 11:11:44.15 Server      Microsoft SQL Server 2012 (SP1) - 11.0.3156.0 (X64) 
    May  4 2015 18:48:09 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
.
.
.
2023-04-01 11:11:44.16 Server      Server process ID is 4668.
.
.
.
2023-04-01 11:11:44.16 Server      Command Line Startup Parameters:
     -s "SQLSERVER_INSTANCE_2"
.
.
.
2023-04-01 11:11:45.12 spid4s      Server name is 'SQLMACHINE1SQLSERVER_INSTANCE_2'. This is an informational message only. No user action is required.
.
.
.
2023-04-01 11:11:45.16 spid10s     Server is listening on [ 'any' <ipv6> 1433].
2023-04-01 11:11:45.16 spid10s     Server is listening on [ 'any' <ipv4> 1433].
2023-04-01 11:11:45.16 spid10s     Server local connection provider is ready to accept connection on [ \.pipeSQLLocalSQLSERVER_INSTANCE_2 ].
2023-04-01 11:11:45.16 spid10s     Server local connection provider is ready to accept connection on [ \.pipeMSSQL$SQLSERVER_INSTANCE_2sqlquery ].
.
.
.

从以上内容中,您应该能够找到有关SQL Server实例的以下信息:

  • 启动日期和时间
  • 版本
  • 进程ID
  • 实例名称(默认实例为MSSQLSERVER)
  • IP和端口号(如果启用了TCP/IP协议,1433是默认端口)
  • 命名管道路径(即使禁用了命名管道协议)

一旦你有了这些信息,建立连接URL:

jdbc:sqlserver://[serverName[instanceName][:portNumber]][;property=value[;property=value]]

默认值用于未指定的url组件。请确保在字符串文字中转义

请注意,当使用不带端口号的实例名称时,会向SQL Server浏览器服务发出请求。这也需要运行,UDP端口1434必须打开。

还要确保在同一页面上启用TCP/IP

我的解决方案:客户:DBeaverAuth:Windows身份验证

采取步骤后:

  • 启用tcp/ip
  • 启用命名管道

连接字符串:localhost\SQLEXPRESS(这个反斜杠起了很大的作用)。

最新更新