Каков правильный синтаксис строки соединения 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 - > перезапустить