Pierwsza próba
Mam Azure VM z Windows Server 2012, na którym po prostu zainstalowany SQL Server 2012 ekspresowe Database Engine składnik. Następnie postępowałem zgodnie z instrukcjami here, aby połączyć się zdalnie z SQL Server Management Studio.użycie SQL Server Management Studio na zdalne łączenie się z wystąpienie SQL Server Express hostowane na Azure Virtual Machine
- Create a TCP endpoint for the virtual machine
- Open TCP ports in the Windows firewall
- Configure SQL Server to listen on the TCP protocol
- Configure SQL Server for mixed mode authentication
- Create SQL Server authentication logins
- Determine the DNS name of the virtual machine
- Connect to the Database Engine from another computer
Po kroku siedem otrzymałem następujący błąd:
A network related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 53)
Co jeszcze należy skonfigurować przed podłączeniem zdalnie?
Rozwiązywanie
śledzę instrukcje rozwiązywania problemów here. Każdy cytowany poniżej opis jest krokiem opisującym to łącze.
Confirm the instance of the SQL Server Database Engine is installed and running.
Gotowe. Zainstalowaliśmy SQL Server Express i działa jako nazwana instancja o nazwie SQLEXPRESS.
If you are attempting to connect to a named instance, make sure the SQL Server Browser service is running.
Gotowe. Wykonaliśmy kroki here, aby włączyć usługę SQL Server Browser.
Get the IP Address of the computer.
Gotowe. Użyjemy ich później do testowania łączności i może do skonfigurowania portu statycznego dla SQLEXPRESS.
10.241.62.155
FE80 :: 45c: 8c29: e19f: f78b% 15
Get the TCP port number used by SQL Server.
Gotowe. W SQL Server Management Studio logi serwera wykazały, że serwer został nasłuchuje na porcie 49169.
Enable Protocols
zrobić. Włączyliśmy już TCP/IP w menedżerze konfiguracji, ale na wszelki wypadek ponownie uruchomiliśmy usługę SQL Server.
Testing TCP/IP Connectivity
Gotowe. Użyliśmy tcping.exe przetestować łączność (cmd ping nie szybko pracować z Azure.) Byliśmy w stanie połączyć się z portem 80.
- tcping.exe buddha.cloudapp.net> udany
- budda tcping.exe .cloudapp.net 80> udany
Testing a Local Connection
Gotowe. Użyliśmy sqlcmd.exe z wiersza poleceń i byliśmy w stanie połączyć się lokalnie przez TCP z nazwą użytkownika i hasłem.
- sqlcmd -S Buddha \ SQLEXPRESS (sukces poprzez wspólną protokołu pamięci)
- sqlcmd -S tcp: Buddha \ SQLEXPRESS (sukces poprzez TCP)
- sqlcmd -S tcp: Buddha \ SQLEXPRESS -U sa - P (sukces poprzez TCP z nazwą użytkownika)
- sqlcmd -S tcp: 10.241.62.155 \ SQLEXPRESS -U sa -P (sukces z wewnętrznym IP)
Opening a Port in the Firewall
otworzyliśmy port, na którym SQL EXPRESS słucha. Logi serwera (powyżej) wykazała, że SQLEXPRESS słucha na porcie 49169, ale jest to tylko jeden z wielu dynamicznych portów, a my chcieliśmy, aby skonfigurować port statyczną 1435.
- Zastosowanie WF.msc stworzyć przychodzącego zasada TCP dla portu Portal 1435
- Zastosowanie Azure Zarządzanie stworzyć punkt końcowy TCP na porcie 1435.
instrukcje rozwiązywania problemów również powiedzieć:
If you are connecting to a named instance or a port other than TCP port 1433, you must also open the UDP port 1434 for the SQL Server Browser service.
Ponieważ w e łączymy SQLEXPRESS (nazwaną instancję), musimy otworzyć port 1434 dla UDP.
- Zastosowanie WF.msc stworzyć przychodzącego UCP regułę dla portu Portal 1434.
- Zastosowanie Azure Zarządzanie stworzyć UDP końcowy dla portu 1434
Dalsze badania na temat łączenia się nazwane wystąpienia ujawniły problemy z portem dynamicznym. Powodem, dla którego używasz portu 1435 (statyczny) zamiast 49169 portu (jeden z wielu skutecznych opcji.)
Instances of SQL Server Express, SQL Server Compact, and named instances of the Database Engine use dynamic ports. To configure these instances to use a specific port, see Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager). and here .
zrobić. Udaliśmy się do SQL Configuration Manager> Konfiguracja sieciowa SQL Server> Protokoły dla SQLEXPRESS> TCP/IP, zrobiliśmy co następuje.
Karta Protokół> Listen All> NO.
adresów IP Tab> dla każdego wymienionego adresu
- Włączone> Tak
- TCP Dynamiczne Porty> Blank (usunąć zero)
- TCP Port> 1435 (lub do wyboru)
Po ponownym uruchomieniu usługi SQLEXPRESS ponownie przejrzeliśmy logi SQL Server Management Studio i stwierdziliśmy, że serwer nasłuchuje na porcie 1435 !!! Brawo!
Testing the Connection
Gotowe. Otworzyliśmy SQL Server Management Studio na naszym lokalnym (innym niż Azure) komputerze i podłączyliśmy go.
- buddha.cloudapp.net, 1435 OR buddha.cloudapp.\ Netto SQLEXPRESS
- sa
- hasło
sukcesu.
Wow, niesamowita praca z listą wszystkich kroków i prób. –
Właśnie uratowałeś mi mnóstwo czasu! Kluczem dla mnie był sam koniec: karta Protokół> Listen All> NO. Nie musiałem zmieniać adresu IP z 1433, ale usunąłem 0 z dynamicznych portów na dobrą miarę. Zakładam, że moje problemy wynikają ze słuchania wszystkich innych wymienionych protokołów. Dobra robota! – hiro77