com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost、端口 1433 的 TCP/IP 连接失败 [重复]

Posted

技术标签:

【中文标题】com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost、端口 1433 的 TCP/IP 连接失败 [重复]【英文标题】:com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed [duplicate] 【发布时间】:2012-08-05 23:00:00 【问题描述】:

我不断收到此错误。我尝试了 Stack Overflow 的一种解决方案(如下),但对我不起作用: SQL Exception while connecting to SQL server

我尝试通过使用链接在 Windows 防火墙中允许端口 1433,但也不起作用。请参阅“在 Windows 防火墙中打开端口以进行 TCP 访问”部分 http://msdn.microsoft.com/en-us/library/ms175043.aspx

com.microsoft.sqlserver.jdbc.SQLServerException: TCP/IP 连接到主机 localhost,端口 1433 失败。错误: “连接被拒绝:连接。验证连接属性。使 确保 SQL Server 实例正在主机上运行,​​并且 在端口接受 TCP/IP 连接。确保 TCP 与端口的连接不会被防火墙阻止。

请帮我解决这个问题。

【问题讨论】:

您的连接设置是什么?您是在尝试连接到默认实例还是命名实例? @Neil - 我刚刚读到“默认”和“命名”实例。我输入了一个命令并得到了一个名字。这是我的实例的名称吗? select @@servername go 名称是 JUSTIN\SQLEXPRESS。 你的代码看起来像con = DriverManager.getConnection("jdbc:sqlserver://justin\\sqlexpress", "user", "pass"); 吗? 隔了很久才回来。甚至不记得我是否解决了这个问题。 @sweet dream-- 你是怎么解决这个问题的? 【参考方案1】:

你需要去 Start > Microsoft SQL Server > Configuration Tools > SQL Server Configuration Manager

打开后,转到SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for SQLExpress

您会在此处找到 TCP/IP 协议,如果禁用则启用它。点击 TCP/IP,你会发现它的属性。

在这些属性中,删除所有 TCP 动态端口并将值 1433 添加到所有 TCP 端口,然后重新启动您的 SQL Server Services > SQL Server

它已经完成了。

【讨论】:

我还是有问题...这是我的问题:***.com/questions/17852987/… 有没有办法确定当前的动态端口并使用它,而不是强制它使用静态端口? 你拯救了我的一天!谢谢。 或者在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp 中找到端口 @parth 如果我不想手动启用 TCP/IP 怎么办?如何在没有手动交互的情况下解决此问题?【参考方案2】:

步骤

打开 Sql Server 配置管理器(开始 -> 程序 -> Microsoft SQL Server 2008 -> 配置工具)

扩展 SQL Server 网络配置 -> [您的服务器实例]

双击 TCP/IP

根据协议:

确保启用为是

在 IP 地址下:

滚动到底部并在 IPAll 下设置 TCP 端口,(1433 by 默认)

找到您要连接的 IP 地址并设置启用和活动 是

【讨论】:

【参考方案3】:

使用 JDBC 查询数据库 SQL Server

首先,您需要找出您的 SQL Server 的 IP 并启用 TCP/IP 并设置 TCP/IP 端口。为此,请执行以下步骤:

打开 SQL Server 配置管理器

选择SQL Server网络配置 -> Protocols for -> 右击TCP/IP -> 选择启用 strong>(如果已启用,则继续下一步)-> 再次右键单击 TCP/IP -> Properties -> 选择选项卡 IP 地址 -> 在 IPAll 组中:清除 TCP Dynamic Ports 的值并将 1433 设置为 TCP Port -> 点击确定

注意:复制属性表中的其中一个 IP 以便稍后进行配置

双击SQL Server 服务 -> 右击SQL Server(USER) ** -> 选择**重启

现在,你已经有了IP,配置服务器如下:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <property name="url" value="jdbc:sqlserver://put.the.ip.here:1433;databaseName=<DB-Name>" />
        <property name="username" value="sa" />
        <property name="password" value="p@ssW0rd" />
</bean>

注意:将destroy-method="close"从bean中移除

【讨论】:

【参考方案4】:

确保在 connectionUrl 中,你的斜线是这样向左的:

String connectionUrl = "jdbc:sqlserver://localhost**\**itis;databaseName=dbMediaStore;user=;password=";

【讨论】:

不应该将反斜杠加倍以逃避它吗?

以上是关于com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost、端口 1433 的 TCP/IP 连接失败 [重复]的主要内容,如果未能解决你的问题,请参考以下文章