到SQL Server的Flyway连接字符串的正确语法是什么?

问题描述:

在远程计算机上运行SQL Server 2012 Express,尝试启动并运行Flyway。我有pcesqldev.pce.local数据库名为Hawkdbo.Hawk,如果该事项),我想连接,并从配置文件模板看起来是这样的:到SQL Server的Flyway连接字符串的正确语法是什么?

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

这一个让我,并没有太多的答案在那里如何格式化连接字符串与实例名称。

下面是我工作:

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

这看起来很有希望。我很担心要完成此版本,但只要我休息一下并尝试了解它是如何工作的,就会尝试您的建议。 – DaveN59

+0

这对我来说很感谢 –

如果任何人的问题,正确的连接字符串如下:

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

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

这做我的头一会儿。

我使用的连接字符串是this(作为参数传递给命令行上的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浏览器,可能没有TCP设置正确:

从SQL Server部分here。 安装完成后,启用TCP/IP:

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

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