Ответ 1
подключиться через SSMS, используя общедоступный IP-адрес, затем разделитель запятой, а затем порт (xxx.xx.xx.xxx, порт)
Для выполнения этой работы вам также понадобятся учетные данные sa.
Контекст: я пытаюсь создать SQL-сервер для разработки, на котором я могу продолжать изучать SQL и использовать Microsoft SQL Server Management Studio (SSMS
) для доступа на ПК с Windows.
Итак, у меня есть база данных AdventureWorks, которая находится в Docker-контейнере для MS SQL Server 2017 и работает на компьютере DigitalOcean Ubuntu 16.04. С моего Mac я могу удаленно подключиться к серверу по SSH, получить доступ к контейнеру и запросить базу данных.
Однако я хочу использовать SSMS на своем ПК с Windows и не уверен, как начать подключаться к удаленному устройству. На рисунке ниже нет вариантов указать ключ SSH или даже войти в систему в окне Ubuntu только для доступа к серверу SQL.
Это вообще возможно?
подключиться через SSMS, используя общедоступный IP-адрес, затем разделитель запятой, а затем порт (xxx.xx.xx.xxx, порт)
Для выполнения этой работы вам также понадобятся учетные данные sa.
Вы можете использовать localhost ip для локального подключения. В этом случае ввод имени сервера станет 127.0.0.1, порт #
Следующая инструкция этого сайта решила это для меня на контейнерах Windows: https://www.sqlshack.com/sql-server-with-a-docker-container-on-windows-server-2016/ Удалось подключиться к SQL Server мгновенно из SSMS.
Попробуйте, если это также работает на контейнерах Linux, с помощью этой команды:
docker run --name mssqltrek-con1 -d -p 1433:1433 -e sa_password=My$eCurePwd123# -e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer
После этого вы можете получить правильный ip с помощью:
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mssqltrek-con1
Я также столкнулся с той же проблемой, когда я пытаюсь подключиться через SSMS, даже я пытался с localhost, 1433 это не помогает мне. введите описание изображения здесь
После некоторых исследований я нашел способ решить эту проблему
В моем случае это была Cisco VPN, которая блокировала хост для подключения к контейнеру IP. Мне пришлось снять флажок "Диспетчер доступа к сети Cisco Any Connect", как показано на рисунке ниже, чтобы он работал. Это гарантирует, что VPN больше не управляет соединением.