【问题标题】:com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed [duplicate]com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost、端口 1433 的 TCP/IP 连接失败 [重复]
【发布时间】: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-- 你是怎么解决这个问题的?

标签: java sql-server-2008 jdbc


【解决方案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

它已经完成了。

【讨论】:

  • 我还是有问题...这是我的问题:stackoverflow.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=";

      【讨论】:

      • 不应该将反斜杠加倍以逃避它吗?
      猜你喜欢
      • 2013-09-29
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2017-03-21
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      相关资源
      最近更新 更多