#sql-server #ubuntu #windows-subsystem-for-linux #wsl-2
#sql-сервер #ubuntu #windows-subsystem-for-linux #wsl-2
Вопрос:
У меня есть хост под управлением Windows 10, WSL 2. Мой гость — Ubuntu.
Я пытаюсь использовать sqlcmd
для подключения к SQL Server, работающему на моем хост-компьютере, но я не уверен, какой IP-адрес использовать для подключения?
Я предоставил / включил в основном все из диспетчера конфигурации SQL на хосте Windows SQL Server и использую подобные команды, чтобы попытаться подключиться:
sqlcmd -S 127.0.0.1 -U sa -P pass
Sqlcmd: Ошибка: драйвер Microsoft ODBC 17 для SQL Server: истек срок ожидания входа.
Ответ №1:
- В строке подключения используйте IP-адрес из
cat /etc/resolv.conf
- откройте
1433
порт в брандмауэре Windows. Перейдите к новому правилу — Port — Next — Specific ports: 1433 — Next — Allow — Next — Next — Name «WSL2 sql» - Отключите программное обеспечение VPN в Windows (если оно есть) — это может помешать сетевому подключению WSL2 / Windows
ПРИМЕЧАНИЕ: Вы только что открыли порт для всего мира, поэтому либо включайте -отключайте это правило только при необходимости, либо ограничьте это правило только вашим IP-адресом WSL2 (дважды щелкните область действия правила — Удаленные IP-объявления — Добавьте свой адрес WSL2. Чтобы найти адрес вашего хоста wsl, введите адрес wsl hostname -I
в командной оболочке Windows)
Комментарии:
1. Вы можете открыть порты Windows для заливки WSL с помощью этой команды:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
Ответ №2:
Вы пытались посмотреть IP-адрес в /etc/resolv.conf?
Попробуйте подключиться с помощью этого, например: sqlcmd -S 192.168.202.65 -U sa -P pass
Это связано с этим
Ответ №3:
Включение «Мониторинга виртуальной машины» сработало для меня. Эти четыре правила брандмауэра расположены в списке входящих, имена начинаются с «Мониторинг виртуальной машины» для:
- Эхо-запросы (ICMPv4 / v6)
- RPC
- DCOM-In
- NB-Session-In
По умолчанию они отключены, и как только я их включил, я смог выполнить пинг хоста, а также подключиться к службе sql server моего хоста, используя IP-адрес из сгенерированного WSL файла resolv.conf —
cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 1xx.1xx.1xx.1xx