2012-02-28 8 views
6

Pojawia się bardzo tajemniczy problem: PNie można uzyskać zdalnego dostępu do wystąpienia SQL Server 2008 R2

Mam serwer skonfigurowany ze statycznym adresem IP. Zainstalowałem SQL Server 2008 R2 z dodatkowym wystąpieniem (ITAPP). Teraz gdy używam IP, aby uzyskać dostęp do SQL Server następujące rzeczy dzieje: Maszyna

Klient:

sqlcmd -S XXX.XXX.XXX.XXX -U sa -P mypass 

Połączenie nawiązane ....

Ale kiedy używać:

sqlcmd -S XXX.XXX.XXX.XXX\ITAPP -U sa -P mypass 

HResult 0xFFFFFFFF, Level 16, State 1 SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server.

When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..

Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

Nawet na tym samym komputerze (na którym zainstalowany jest serwer SQL) za pomocą SQL Server Management Studi o. Odłożyłem zaporę ogniową na obu komputerach, nawet zezwalałem na wszystkie protokoły dla ITAPP (Pamięć współdzielona, ​​Potoki nazwane, TCP/IP), a także ustawiono Allow Remote connection na true.

Jedną rzeczą, gdy korzystam z 127.0.0.1\SQLITRAX do połączenia na maszynie serwera, która łączy się Natychmiast.

Proszę mi pomóc z tego bałaganu :)

+1

Dlaczego komunikat o błędzie mówi SQL 2005, jeśli używasz 2008? – Simon

+0

serwer sql 2008 – Wasif

Odpowiedz

16

Może dlatego, że to wystąpienie nazwane na zasadzie zdalny serwer.
Wystąpienie o określonej nazwie nie korzysta ze standardowego portu Tcp 1433 programu SQL Server, tylko domyślna instancja używa portu 1433.
Każda inna "nazwana" instancja po prostu nasłuchuje na innym porcie.
Należy zatem sprawdzić konfigurator SQL-Server, na którym nasłuchuje port TCP, a następnie poinformować klienta o konieczności połączenia z tym portem.
Powiedzmy, że wystąpienie nazwane nasłuchuje na porcie 12345, wówczas klient powinien połączyć za pomocą następującego polecenia

sqlcmd -S XXX.XXX.XXX.XXX,12345 -U sa -P mypass 

gdy podasz port TCP, wtedy nie trzeba nazwę instancji.
W moim rozumieniu nazwa instancji jest sposobem dla usług SQL Server, aby znaleźć port TCP, którego słucha ta nazwana instancja.
Ale za to do pracy klient musi być w stanie uzyskać dostęp do tych innych usług, które rozpoznać nazwę instancji SQL Server (może to przeglądarka Agent/SQL Server serwera SQL, ale nie jestem pewien)

Aktualizacja
Oto zrzut ekranu pokazujący, gdzie ustawić port TPC dla instancji nazwanej SQL Server. How to check the TPC listening port of a SQL Server named instance

więc, na którym porcie TCP jest twoje nazwane wystąpienie SQL Server nasłuchiwanie?

+1

Właśnie zaktualizowałem odpowiedź za pomocą zrzutu ekranu, tutaj dowiesz się, gdzie port TCP nasłuchuje na serwerze. – Max

+0

Dzięki MAX za pomoc – Wasif

+0

Dzięki za podpowiedź na temat portu. Zasadniczo prawie rozwiązał mój problem. Jedyne, co musiałem zrobić, to stworzyć regułę ruchu przychodzącego dla tego konkretnego portu w kreatorze Zapora systemu Windows i zabezpieczeniami zaawansowanymi. – MacGyver

3

SQL Server Przeglądarka usługa musi być dostępny, aby móc podłączyć do nazwanych wystąpień.

Zobacz this article uzyskać więcej informacji o tym, co robi i jakie porty otworzyć na zaporze

Ten technet article zapewnia wygodny skrypt aby otworzyć wszystkie wymagane porty

+0

już zrobiliśmy ten – Wasif

+0

również sprawdzony skaner antywirusowy? –

Powiązane problemy