Каков правильный синтаксис строки соединения Flyway с SQL Server?

запуск SQL Server 2012 Express на удаленной машине, пытаясь получить Flyway и работает. У меня есть база данных на pcesqldev.pce.local под названием Hawk (dbo.Hawk, если это имеет значение), к которому я хочу подключиться, и шаблон из файла конфигурации выглядит так:

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

обратите внимание, что это отличается от других строк подключения jdbc, которые я использовал с другими продуктами - большинство из них не включают часть jtds и включают имя экземпляра.

вот несколько соединений строки, которые я пробовал, все из которых не удалось:

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

    ошибка сети IOException: соединение отказано: connect

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

    неизвестное имя хоста сервера ' pcesqldev.псе.местныйSQLEXPRESS'

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

    ошибка сети IOException: соединение отказано: connect

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

    сетевая ошибка IOException: соединение отказано: connect

что я упустил? Должно быть что-то очевидное, но я этого не вижу.

прежде чем кто-нибудь спросит, да, у нас есть TCP-доступ к базе данных включен, и он использует порт 1433.

3 ответов


Это меня достало, и было не так много ответов о том, как отформатировать строку соединения с именем экземпляра.

вот что сработало для меня:

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

в случае каких-либо проблем правильная строка подключения выглядит следующим образом:

flyway.url=jdbc:jtds:sqlserver://SERVER_INSTANCE_NAME:1433/DB_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 Server и, возможно, не правильно настроил TCP:

из раздела SQL Server здесь. После завершения установки, включите TCP/IP:

запустите Диспетчер конфигурации Sql Server Перейдите в раздел Конфигурация сети SQL Server - > протоколы для SQLEXPRESS Включить TCP / IP Свойства TCP / IP - > IP-адреса - > IPAll Динамические порты TCP: пустой Порт TCP: 1433 Затем включите удаленный доступ:

запустите Диспетчер конфигурации Sql Server Службы SQL Server - > браузер SQL Server - > свойства - > вкладка служба Режим Запуска: Автоматический ЛАДНО Браузер -> SQL-сервер запустить SQL Server - > перезапустить