#java #sql-server #docker #jdbc #tcp
Вопрос:
Я изучаю Java EE и пытаюсь открыть соединение с моей базой данных SQL Server, работающей на образе Docker. Я, очевидно, понимаю, что
Не удается создать PoolableConnectionFactory (Не удалось установить TCP/IP-соединение с хостом localhost/DB_DEMO, порт 1433.
С
docker ps -a
Я попадаю 0.0.0.0:1433->1433/tcp
в раздел «Порты» для своего образа SQL Server.
Я знаю, что мы можем использовать диспетчер конфигурации SQL Server для разрешения подключений TCP/IP, но я, похоже, не могу найти способ его установки без установки полного пакета SQL Server.
Итак, есть ли способ включить TCP/IP на моем SQL-сервере, работающем в контейнере Docker? Или что-то, чего я не понимаю во всей этой истории с «TCP/IP»?
ИЗМЕНИТЬ [РЕШЕНО]: Я получаю эту ошибку с этим URL-адресом (в документах Microsoft указано, что по умолчанию используется 1433, если порт не указан):
url="jdbc:sqlserver://localhost/DB_DEMO"
Он работал с использованием формата {свойство=ключ} :
url="jdbc:sqlserver://localhost;databaseName=DB_DEMO"
Я делал слишком много твитов одновременно, возвращаясь и возвращаясь к этим двум форматам, и, к сожалению, я думал, что проблемы не было (хотя я взял формат server/DBName из документации a). Урок усвоен!
Как ответил Марк Роттевил, TCP/IP, безусловно, включен по умолчанию в образе докера в любом случае.
Комментарии:
1. Это выглядит правильно. Что
PS C:> test-netconnection localhost -Port 1433
показывает дисплей? Каков ваш URL-адрес JDBC? Это должно выглядеть какjdbc:sqlserver://localhost:1433;integratedSecurity=true. . .
для драйвера Microsoft.2. Показывает нам, как вы запускаете образ docker, и показывает нам строку подключения. Насколько я знаю, TCP/IP включен по умолчанию для образа докера SQL Server.
3. Пожалуйста, отредактируйте вопрос, чтобы включить URL-адрес вашего подключения к JDBC. Фрагмент ошибки
host localhost/DB_DEMO
указывает на то, что URL-адрес неправильно отформатирован.4. Спасибо @DavidBrowne-Microsoft и @AlwaysLearning, я действительно изменил URL-адрес в формат, предписанный в документах Microsoft. Это не сработало со
integratedSecurity
свойством, по-видимому, для этого требуются некоторые дополнительные настройки, которые мне, вероятно, не нужны для моей учебной цели здесь. @mark-rotteveel Действительно, это, вероятно, включено по умолчанию. Моим одноклассникам, использующим полную установку SQLServer, пришлось пройти через ее включение, чтобы соединение открылось.