JDBC连接失败,错误:到主机的TCP / IP连接失败

我想用SQL server 2012连接Java类文件。我已经使用SQL Server身份validationlogin。 但是我正在接收连接错误。

错误:与主机127.0.0.1,端口1433的TCP / IP连接失败。 错误:“Connection refused:connect。validation连接属性确保主机上正在运行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)); } 
  1. 打开SQL Serverconfigurationpipe理器,然后展开SQL Server 2012networkingconfiguration。
  2. 单击InstanceName的协议,然后确保在右侧面板中启用TCP / IP并双击TCP / IP。
  3. 在协议选项卡上,注意Listen All项目的值。
  4. 单击“IP地址”选项卡:如果全部侦听的值为是,则此SQL Server 2012实例的TCP / IP端口号是IPAll下TCPdynamic端口项的值。 如果Listen All的值为否,则此SQL Server 2012实例的TCP / IP端口号是特定IP地址的TCP Dynamic Ports项的值。
  5. 确保TCP端口是1433。
  6. 点击OK。

如果还有其他问题,请告诉我。

谢谢。

简易解决scheme

开始 – >所有程序 – > Microsoft SQL Server 2012->configuration工具 – >单击SQL Serverconfigurationpipe理器 – >展开SQL Servernetworkingconfiguration – >协议 – >启用TCP / IP权限框

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

在这里输入图像描述

错误是自我解释的:

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

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

 telnet 127.0.0.1 1433 

如果您看到空白屏幕,则说明networking连接已成功build立,这不是networking问题。 如果你得到'无法打开连接到主机',那么这是networking问题

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

以下是可用于解决问题的命令:

  1. 使用netstat -a检查sql服务器是否正在侦听所需的端口
  2. 正如gerrytan在回答中提到的,你可以尝试在主机和端口上执行telnet

转到开始 – >所有程序 – > Microsoft SQL Server 2012->configuration工具 – >单击SQL Serverconfigurationpipe理器。 在这里输入图像描述

如果您看到SQL Server / SQL Server浏览器状态为“已停止”。右键单击“SQL Server / SQL Server浏览器”,然后单击“开始”。 在某些情况下,上面的状态可以停止,虽然TCP连接到端口1433被分配。