【问题标题】:JDBC connection Url for SQLServer express R2SQLServer express R2 的 JDBC 连接 URL
【发布时间】:2012-03-04 14:10:32
【问题描述】:

我为连接sql server express r2编写了以下行:

Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost/SQLEXPRESS;databaseName=abc","sa","password");

它给出了例外: com.microsoft.sqlserver.jdbc.SQLServerException:与主机 localhost/SQLEXPRESS、端口 1433 的 TCP/IP 连接失败。错误:“null。验证连接属性,检查 SQL Server 实例是否正在主机上运行并在端口接受 TCP/IP 连接,并且没有防火墙阻止与端口的 TCP 连接。”。

我按照这条线解决了异常:

用于 SQL Server Express 的 TCP/IP 默认情况下,SQL Server Express 的 TCP/IP 被禁用,因此 JDBC 无法连接到它,您可能会遇到以下异常……

网络错误IOException:连接被拒绝:连接 启用 TCP/IP

要启用 TCP/IP,请启动 SQL Server 配置管理器。

展开 SQL Server 2005 网络配置节点。 在右窗格中,选择 SQLEXPRESS 的协议。右窗格现在应该显示协议和状态列。 从 TCP/IP 上下文菜单中选择启用。 查找或配置 TCP/IP 端口

启用 TCP/IP 后,您必须找出要使用的端口号。 SQL Server Express 每次启动时都会动态分配一个端口,因此要查找或配置端口号,请继续使用 SQL Server 配置管理器...

从 TCP/IP 上下文菜单中选择属性。 TCP/IP 属性对话框应该打开。 选择 IP 地址选项卡。 在 IPAll 节点中…… TCP 动态端口字段显示当前使用的端口号。如果将该字段设置为空白,则 SQL Server Express 在重新启动时不应自动选择另一个端口。 在 TCP 端口字段中设置所需的端口号。 按 OK 应用您的设置并关闭对话框。

之后连接也给出了同样的异常。

【问题讨论】:

  • 并且你将所需的端口设置为 1433?
  • 是的..我在 TCP 端口字段中将所需端口设置为 1433
  • 你已经重启了服务器?
  • 是的,在那之后我重新启动了服务器

标签: java database jdbc sql-server-2008-r2


【解决方案1】:

我在 sqlserver2008 中也遇到了同样的问题。要解决这些问题,请遵循以下设置: 启动sqlserver->从登录窗口选择选项按钮->连接属性->连接到数据库->浏览并选择数据库名称->然后在网络协议下面选择TCP/IP。 并执行你的程序。

【讨论】:

    【解决方案2】:

    对于 SQL Server > 2005,您还必须启动 Sql Server Browser 服务。

    我已经使用 Sql Server 2014 Express 成功测试了 JBoss 7。 操作系统:Windows 7。 我必须为 Sql Server 做的设置:

    1. 在以下位置启用 TCPIP 选项:SQL Server 配置管理器 -> Sql Server 网络配置 -> 协议 服务器名称
    2. 停止以下 2 个服务并重新启动它们:

      • Sql 服务器(服务器名)
      • Sql 服务器浏览器

    我没有使用端口,也没有使用 URL 中的本地机器名称。

    【讨论】:

      【解决方案3】:

      尝试运行一些 Java 代码来测试它。将 {computer-name}\SQLEXPRESS 替换为您在 SQL Server Management Studio 的根节点中看到的域。安装 SQL Express 时,您可以选择将“SQLEXPRESS”的名称更改为自定义名称,因此这也可能有所不同。要获取端口号,请转到 Windows 开始菜单 > SQL Server 2008 R2 > 配置工具 > SQL Server 配置管理器 > 展开“SQL Server 网络配置” > 单击“SQLEXPRESS 协议” > 右键单击​​“TCP/IP”并选择“属性” > 单击“IP 地址”选项卡/菜单 > 在 Windows XP 中,您将看到“IPAll”.. 看看那里的端口。它应该默认为 1433。如果您有 2 个版本的 SQL Express,那么它可能会有所不同。还要确保您的服务正在 Windows 控制面板 > 管理工具 > 服务 > SQL Server (SQLEXPRESS) 中运行(状态为“已启动”)。 Windows 7 略有不同,但您会发现它。

      双反斜杠必须在 Java 字符串中。这只是在运行时打印一个反斜杠,因为它是一个转义序列。

      import java.sql.*;
      
      public class TestConnection
      {
          public static void main(String[] args)
          {
              DB db = new DB();
              db.dbConnect("jdbc:sqlserver://{computer-name}\\SQLEXPRESS:1433;databaseName=abc;integratedSecurity=true;","sa","password");
          }
      }
      
      class DB
      {
          public DB() {}
      
          public void dbConnect(String db_connect_string, String db_userid, String db_password)
          {
              try
              {
                  Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
                  System.out.println("connected");
              }
              catch (Exception e)
              {
                  e.printStackTrace();
              }
          }
      };
      

      【讨论】:

        【解决方案4】:

        尝试使用本地机器的 IP 地址而不是 localhost。

        【讨论】:

        • 更多的是评论而不是答案!
        猜你喜欢
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        • 1970-01-01
        • 2020-03-09
        • 1970-01-01
        • 2014-04-13
        相关资源
        最近更新 更多