![](/img/trans.png)
[英]com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed
[英]JDBC connection failed, error: TCP/IP connection to host failed
我想将 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));
}
如果还有其他问题,请告诉我。
谢谢。
简单的解决方案
开始->所有程序->Microsoft SQL Server 2012->配置工具->点击SQL Server配置管理器->展开SQL Server网络配置->协议->启用TCP/IP右键框
双击 TCP/IP 并转到 IP 地址点击并将端口 1433 置于 TCP 端口下。
错误是不言自明的:
我经常使用的一个很好的检查是使用 telnet,例如在 Windows 命令提示符下运行:
telnet 127.0.0.1 1433
如果出现黑屏,则表明网络连接已成功建立,这不是网络问题。 如果您收到“无法打开与主机的连接”,则这是网络问题
正如错误所说,您需要确保您的 sql server 正在运行并侦听端口 1433。如果服务器正在运行,那么您需要检查是否有一些防火墙规则拒绝端口 1433 上的连接。
以下是可用于故障排除的命令:
netstat -a
检查 sql server 是否正在侦听所需的端口telnet
重要的:
任何更改或新设置后,您必须重新启动SQLSERVER
服务。 在Windows
上运行services.msc
如果您使用的是命名实例,则您使用的端口可能是 1434,而不是 1433,因此也请使用上述 telnet 或 netstat 进行检查。
打开防火墙 GUI,打开 TCP 1433 规则,转到范围选项卡并在远程 IP 地址下添加您的 IP 地址,问题就解决了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.