Nie mogę się połączyć z moim lokalnym SQL Server 2008?

18

Właśnie zainstalowałem SQL Server 2008 i nie mogę się z nim połączyć za pomocą SQL Server Management Studio. Zamierzam pozwolić, aby mój lokalny użytkownik systemu Windows został uwierzytelniony, ale nie jestem całkowicie pewien, jak to zrobić .

W oknie dialogowym łączenia piszę:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

Moje pierwsze pytanie brzmi: czy z tym powinienem się połączyć? Podczas próby połączenia pojawia się następujący komunikat o błędzie:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

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: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Poszedłem do wyświetlonego tam adresu URL i po prostu mówi „upewnij się, że serwer SQL działa”. Myślę, że tak, ale nie jestem do końca pewien.

Wyłączyłem Zaporę systemu Windows (jest to Windows 7 7100 x86). Zmieniłem również system logowania w SQL Server Configuration Manager, ale wygląda na to, że nie jest to problem z zalogowaniem się, ale nawet nie mogę otworzyć do niego gniazda. Na tym samym narzędziu włączyłem wszystkie protokoły w „Konfiguracji sieci SQL Server” -> „Protokoły dla SQLEXPRESS” bez powodzenia. Skończyły mi się pomysły. Co jeszcze mogę spróbować?

pupeno
źródło
Wygląda na to, że prawdziwą odpowiedzią była nazwana instancja. . \ SqlExpress kropka oznacza localhost, a \ SqlExpress to instancja, z którą chcesz się połączyć. Dla tych, którzy nie wiedzą, możesz mieć więcej niż jeden SQL Server na komputerze. SqlExpress w tym przypadku jest tylko nazwą, a nie ścisłym wskazaniem rodzaju lub ścisłą wersją produktu.
p.campbell

Odpowiedzi:

23

Ok, możesz otworzyć konsolę usług i przewinąć w dół do S dla SQL Server. Powinieneś teraz zobaczyć usługi. Upewnij się, że SQL Server (SQLEXPRESS) jest uruchomiony, a następnie spróbuj. \ SQLEXPRESS zamiast (lokalny).

Tak jak w twoim przykładzie:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

Mam nadzieję że to pomoże

Aktualizacja: Te instrukcje są, ponieważ zakładam, że używasz Express Edition, a nie wersji Dev / Std / Ent programu SQL Server


Spróbuj upewnić się, że odpowiednie protokoły są włączone:

  1. Uruchom SQL Configuration Manager (tj .: Start-> Programy-> SQL Server-> Narzędzia konfiguracyjne)
  2. Rozwiń natywną konfigurację klienta SQL
  3. Kliknij Protokoły klienta (możesz mieć wersję 32-bitową i 64-bitową, stosuj się do obu)
  4. Upewnij się, że pamięć współdzielona, ​​TCP / IP, potoki nazwane są włączone w tej kolejności
  5. Rozwiń Konfiguracja sieciowa programu SQL Server
  6. Upewnij się, że pamięć współdzielona dla SQLEXPRESS i / lub MSSQLSERVER jest włączona
  7. Kliknij Usługi SQL Server
  8. Uruchom ponownie wszystkie uruchomione usługi

Teraz powinieneś być w stanie zalogować się do instancji


Jeśli okaże się, że nie możesz się zalogować, konieczne może być wykonanie tych instrukcji, aby wprowadzić SQL Server w tryb pojedynczego użytkownika. Zobacz tutaj na pełne instrukcje od Microsoft.

Domyślnie sqlservr.exe znajduje się w C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn. Jeśli zainstalowana jest druga instancja programu SQL Server, druga kopia pliku sqlservr.exe znajduje się w katalogu takim jak

C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn.

Możesz uruchomić jedno wystąpienie programu SQL Server za pomocą narzędzia sqlservr.exe z innego wystąpienia, ale program SQL Server uruchomi również wersję niepoprawnego wystąpienia, w tym dodatków Service Pack, co może prowadzić do nieoczekiwanych wyników.

Aby tego uniknąć, użyj polecenia Zmień katalog MS-DOS (cd), aby przejść do właściwego katalogu przed uruchomieniem narzędzia sqlservr.exe, jak pokazano w poniższym przykładzie.

cd \ Program Files \ Microsoft SQL Server \ MSSQL10_50.1 \ MSSQL \ Binn

Aby uruchomić domyślne wystąpienie programu SQL Server w trybie pojedynczego użytkownika z wiersza polecenia

W wierszu polecenia wprowadź następujące polecenie:

sqlservr.exe -m

Tryb jednego użytkownika może być przydatny do przeprowadzania konserwacji awaryjnej, gdy nie chcesz, aby inni użytkownicy łączyli się z SQL Server, ale każdy użytkownik może zostać jednym użytkownikiem, w tym usługa SQL Server Agent.

Teraz powinieneś być w stanie zalogować się do instancji, dodać się do karty bezpieczeństwa i udzielić pełnego dostępu.

Metoda alternatywna:

Oto skrypt , który twierdzi, że dodaje bieżącego użytkownika do roli sysadmin programu SQL Server. Może to działać w trybie pojedynczego użytkownika, ale go nie zweryfikowałem

Wayne
źródło
Czy Konsola usług jest zakładką Usługi w Menedżerze zadań Windows? (Win7). W każdym razie SQLEXPRESS nie ma, jak mam go uruchomić?
pupeno
1
Konsola serwisowa to start-> panel sterowania-> narzędzia administracyjne-> usługi
Wayne
Nieważne, że znalazłem konsolę usług, SQLEXPRESS działa.
pupeno
Połączenie z. \ SQLEXPRESS załatwiło sprawę. Dziękuję bardzo Wayne!
pupeno
1
Dziękuję bardzo ... oszalałem próbując to rozgryźć! (Uwaga dla innych w „. \ SQLEXPRESS” ... „SQLEXPRESS” to identyfikator instancji, który podałeś serwerowi podczas instalacji.
RiddlerDev
0

(lokalny) jest rozwiązywany do wersji 127.0.0.1 i działa tylko w przypadku ustawień domyślnych. Instancje, podobnie jak domyślna wersja SQL Server Express, potrzebują prawdziwej nazwy. Pamiętaj, że możesz sprawdzić dziennik błędów SQL Server (folder instalacyjny SQL, a następnie dziennik), a jeden z pierwszych kilku wpisów poda adres IP, port i nazwę instancji.

Możesz więc użyć ich zamiast tego. Nazwy instancji są dobre w użyciu, ponieważ są dość spójne. Pamiętaj, że używają one także portów dynamicznych, więc może być inny port przy każdym ponownym uruchomieniu. Menedżer konfiguracji programu SQL Server może ustawić określony port. nie jestem pewien co do narzędzi Express.

Steve Jones
źródło