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

Ays*_*wan 76 java sql-server jdbc

我想将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));
}
Run Code Online (Sandbox Code Playgroud)

小智 182

  1. 打开SQL Server配置管理器,然后展开SQL Server 2012网络配置.
  2. 单击InstanceName的Protocols,然后确保在右侧面板中启用了TCP/IP,并双击TCP/IP.
  3. 在"协议"选项卡上,注意"全部侦听"项的值.
  4. 单击"IP地址"选项卡:如果"全部侦听"的值为"是",则此SQL Server 2012实例的TCP/IP端口号是"IPAll"下的"TCP动态端口"项的值.如果Listen All的值为no,则此SQL Server 2012实例的TCP/IP端口号是特定IP地址的TCP动态端口项的值.
  5. 确保TCP端口为1433.
  6. 单击确定.

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

谢谢.

  • 按如下所示重新启动SQL实例:在"SQL Server配置管理器" - >"SQL Server 2012服务"中,右键单击"SQL Server",然后选择"重新启动". (12认同)
  • 并且不要忘记在进行更改后重新启动SQL实例. (8认同)
  • 注意确保IPAII下的TCP端口为**1433**. (8认同)

Md.*_*lam 106

轻松解决方案

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

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

在此输入图像描述

  • 完成这些步骤后,我必须停止并重新启动服务器才能使其正常工作。谢谢! (2认同)

ger*_*tan 12

错误是自我解释的:

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

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

telnet 127.0.0.1 1433
Run Code Online (Sandbox Code Playgroud)

如果您出现空白屏幕,则表示网络连接已成功建立,并且不是网络问题.如果您"无法打开与主机的连接",那么这就是网络问题

  • 我试过 telnet 127.0.01 1433 ,它说 Connecting to 127.0.01`could not open connection to the host or port 1433 connection failed (2认同)
  • 因此,您很可能尚未安装服务器,服务器未运行,或者您的防火墙阻止了连接。这通常不是java程序问题 (2认同)

Abd*_*man 8

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

如果您看到"SQL Server/SQL Server浏览器状态"已"停止".请单击"SQL Server/SQL Server浏览器",然后单击"启动". 在某些情况下,虽然分配了与端口1433的TCP连接,但上述状态可以停止.


Ali*_*aca 8

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

例如:

C:\Windows\System32\SQLServerManager14.msc

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

在此输入图像描述

在此输入图像描述


Jun*_*san 2

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

以下是可用于排除故障的命令:

  1. 用于netstat -a检查sql server是否正在监听所需的端口
  2. telnet正如 gerrytan 在回答中提到的,您可以尝试在主机和端口上执行此操作