97

我想将 Java 类文件与 SQL Server 2012 连接。我已使用 SQL Server 身份验证登录,但连接时收到错误消息。

错误:

与主机 127.0.0.1、端口 1433 的 TCP/IP 连接失败。错误:“连接被拒绝:连接。验证连接属性。确保 SQL Server 实例正在主机上运行并在端口上接受 TCP/IP 连接。确保与端口的 TCP 连接未被防火墙阻止."。

我的代码:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
 //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" +       "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and 
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set

while (rs.next())
{
    System.out.println(rs.getInt(1));
}
4

9 回答 9

228
  1. 打开 SQL Server 配置管理器,然后展开 SQL Server 2012 网络配置。
  2. 单击 InstanceName 的协议,然后确保在右侧面板中启用了 TCP/IP,然后双击 TCP/IP。
  3. 在 Protocol 选项卡上,注意 Listen All 项的值。
  4. 单击 IP 地址选项卡: 如果 Listen All 的值为 yes,则此 SQL Server 2012 实例的 TCP/IP 端口号为 IPAll 下的 TCP Dynamic Ports 项的值。如果 Listen All 的值为 no,则此 SQL Server 2012 实例的 TCP/IP 端口号是特定 IP 地址的 TCP Dynamic Ports 项的值。
  5. 确保 TCP 端口为 1433。
  6. 单击确定。
于 2013-09-17T12:37:16.323 回答
127

简单的解决方案

开始->所有程序->Microsoft SQL Server 2012->配置工具->点击SQL Server配置管理器->展开SQL Server网络配置->协议->启用TCP/IP右键框

双击 TCP/IP 并转到 IP 地址 点击并将端口 1433 放在 TCP 端口下。

在此处输入图像描述

于 2014-06-19T05:27:40.590 回答
19

错误是不言自明的:

  • 检查您的 SQL 服务器是否实际启动并运行
  • 检查 SQL server 主机名、用户名和密码是否正确
  • 检查没有防火墙规则阻止 TCP 连接到端口 1433
  • 检查主机是否实际可达

我经常使用的一个很好的检查是使用 telnet,例如在 windows 命令提示符下运行:

telnet 127.0.0.1 1433

如果您得到一个空白屏幕,则表明网络连接已成功建立,这不是网络问题。如果您收到“无法打开与主机的连接”,则这是网络问题

于 2013-09-17T05:19:52.790 回答
14

转到开始->所有程序-> Microsoft SQL Server 2012-> 配置工具-> 单击 SQL Server 配置管理器。在此处输入图像描述

如果您看到 SQL Server/SQL Server Browser 状态为“已停止”。右键单击 SQL Server/SQL Server Browser 并单击开始。 在某些情况下,尽管分配了与端口 1433 的 TCP 连接,但上述状态可能会停止。

于 2016-11-23T14:07:39.497 回答
4

打开 %windir%\System32 文件夹并找到 SQLServerManagerXX.msc

例如:

C:\Windows\System32\SQLServerManager14.msc

转到协议设置,然后启用 TCP/IP 端口默认为 1433

在此处输入图像描述

在此处输入图像描述

于 2020-10-13T08:59:06.137 回答
3

正如错误所说,您需要确保您的 sql 服务器正在运行并在端口 1433 上侦听。如果服务器正在运行,那么您需要检查是否有防火墙规则拒绝端口 1433 上的连接。

以下是对故障排除有用的命令:

  1. 用于netstat -a检查 sql server 是否正在侦听所需的端口
  2. 正如 gerrytan 在回答中提到的那样,您可以尝试telnet在主机和端口上执行
于 2013-09-17T05:17:31.353 回答
0

如果您使用的是命名实例,那么您使用的端口可能是 1434,而不是 1433,因此请也使用上述 telnet 或 netstat 进行检查。

于 2019-12-09T09:23:18.800 回答
0

重要:
任何更改或新设置后,您必须重新启动SQLSERVER服务。services.msc继续运行Windows

于 2019-11-12T07:36:23.907 回答
0

打开防火墙 GUI,打开 TCP 1433 规则,转到范围选项卡并在远程 IP 地址下添加您的 IP 地址,问题就解决了。

于 2021-10-06T12:41:42.837 回答