SQL 服务器的 Flyway 连接字符串的正确语法是什么?

What is the correct syntax for a Flyway connection string to SQL Server?

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

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

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

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

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

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

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

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

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

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

以下是对我有用的方法:

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

这让我有点头疼。

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

另请注意,mydatabasename 需要已经存在。

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

虽然缺少一点,但我不是 运行 SQL 服务器浏览器,可能没有正确设置 TCP:

来自 SQL 服务器部分 here。 安装完成后,启用TCP/IP:

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

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

启动服务我的问题已解决"SQL Server Agent (SQLEXPRESS)"

步数:

  • Windows + R -> 它会打开 "Run" window
  • 键入 "services.msc" 不带双引号 ("")
  • 搜索 SQL 服务器代理服务
  • 右键单击 "SQL Server Agent" 并转到“属性”
  • 将 "Startup type" 更改为 "Automatic" 并应用配置
  • 点击"Apply"按钮后,会启用"Start"按钮,点击此按钮
  • 服务启动后,再次尝试执行flyway