【问题标题】:What is the correct syntax for a Flyway connection string to SQL Server?Flyway 到 SQL Server 的连接字符串的正确语法是什么?
【发布时间】:2015-09-13 19:27:13
【问题描述】:

在远程计算机上运行 SQL Server 2012 Express,试图启动并运行 Flyway。我有一个pcesqldev.pce.local 上的数据库,名为Hawkdbo.Hawk,如果这很重要),我想连接到该数据库,配置文件中的模板如下所示:

SQL Server        : jdbc:jtds:sqlserver://<host>:<port>/<database>

注意,这与我在其他产品中使用的其他 jdbc 连接字符串不同——它们中的大多数不包含 jtds 部分,而是包含实例名称。

这是我尝试过的几个连接字符串,都失败了:

  • flyway.url=jdbc:jtds:sqlserver://pcesqldev.pce.local:1433/Hawk
    

    网络错误IOException:连接被拒绝:连接

  • flyway.url=jdbc:jtds:sqlserver://pcesqldev.pce.local\SQLEXPRESS:1433/Hawk
    

    未知的服务器主机名'pcesqldev.pce.local\SQLEXPRESS'

  • flyway.url=jdbc:jtds:sqlserver://pcesqldev.pce.local/SQLEXPRESS:1433/Hawk
    

    网络错误IOException:连接被拒绝:连接

  • flyway.url=jdbc:jtds:sqlserver://pcesqldev.pce.local:1433/SQLEXPRESS\Hawk
    

    网络错误IOException:连接被拒绝:连接

我错过了什么?肯定有什么明显的东西,但我看不到。

在任何人问之前,是的,我们确实启用了对数据库的 TCP 访问,并且它正在使用端口 1433。

【问题讨论】:

    标签: sql-server-2012 connection-string flyway


    【解决方案1】:

    这个让我明白了,关于如何用实例名称格式化连接字符串的答案并不多。

    这对我有用:

    flyway.url=jdbc:jtds:sqlserver://<host>:<port>/<database>;instance=<instance_name>
    

    【讨论】:

    • 这看起来很有希望。我正忙于完成这个版本,但我会在休息后尽快尝试你的建议,并告诉你它是如何工作的。
    • 我们如何传递查询参数,如 jdbc:mariadb:aurora://myHost/db?socketTimeout=0
    【解决方案2】:

    以防万一,正确的连接字符串如下:

    flyway.url=jdbc:jtds:sqlserver://SERVER_INSTANCE_NAME:1433/DB_NAME
    

    我花了一些时间才意识到这一点,但也许它会对某人有所帮助:)

    【讨论】:

      【解决方案3】:

      这让我有点头疼。

      我使用的连接字符串是这个(在命令行上作为参数传递给flyway)。

      另请注意,mydatabasename 必须已经存在。

      ./flyway migrate -url=jdbc:jtds:sqlserver://localhost:1433/mydatabasename -user=myuser -password=mypassword -baselineVersion=269 -baselineDescription="Base version" -outOfOrder=true -baselineOnMigrate=
      

      但缺少的一点是我没有运行 SQL Server Browser,并且可能没有正确设置 TCP:

      来自 SQL Server 部分 here。 安装完成后,开启TCP/IP:

      启动 Sql Server 配置管理器 转到 SQL Server 网络配置 -> SQLEXPRESS 的协议 启用 TCP/IP TCP/IP 属性 -> IP 地址 -> IPAll TCP 动态端口:空白 TCP 端口:1433 然后启用远程访问:

      启动 Sql Server 配置管理器 SQL Server 服务 -> SQL Server 浏览器 -> 属性 -> 服务选项卡 启动模式:自动 好的 SQL Server 浏览器 -> 开始 SQL Server -> 重新启动

      【讨论】:

        【解决方案4】:

        启动服务“SQL Server Agent (SQLEXPRESS)”解决了我的问题

        步骤:

        • Windows + R -> 它将打开“运行”窗口
        • 键入不带双引号 ("") 的“services.msc”
        • 搜索 SQL Server 代理服务
        • 右键单击“SQL Server 代理”并转到“属性”
        • 将“启动类型”更改为“自动”并应用配置
        • 点击“应用”按钮后,会启用“开始”按钮,点击此按钮
        • 服务启动后,再次尝试执行flyway

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-28
          • 1970-01-01
          • 1970-01-01
          • 2020-10-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多