Nie można połączyć się z hostem lokalnym w programie SQL Server Express 2012/2016

97

Właśnie pobrałem najnowszą wersję SQL Express 2012, ale nie mogę połączyć się z localhost. Próbowałem uwierzytelnić localhost \ SQLExpress i Windows, ale wyświetla mi się komunikat o błędzie z informacją, że nie można się połączyć. Czy coś mi umyka? Używałem SQL Server 2008 wcześniej i nigdy nie miałem problemów z połączeniem się z localhost. Wygląda na to, że nawet nie może go znaleźć. Również w usługach widzę tylko moduł zapisujący SQL Server VSS. Czy tak powinno być? A może coś mi brakuje? Dzięki

dido
źródło
1
Wygląda na to, że instalacja nie poszła dobrze. Czy próbowałeś go naprawić / ponownie zainstalować?
Vikdor
1
Czy na pewno znalazłeś instalator dla serwera, a nie, powiedzmy, instalator Management Studio?
Damien_The_Unbeliever

Odpowiedzi:

183

Według Aarona Bertanda :

  1. Musisz sprawdzić, czy usługa SQL Server jest uruchomiona. Możesz to zrobić, przechodząc do Start > Control Panel > Administrative Tools > Servicesi sprawdzając, czy usługa SQL Server ( SQLEXPRESS) jest uruchomiona. Jeśli nie, zacznij.

  2. Gdy jesteś w aplecie usług, upewnij się również, że usługa SQL Browser jest uruchomiona. Jeśli nie, zacznij .

  3. Musisz upewnić się, że SQL Server może używać protokołu TCP / IP lub nazwanych potoków. Możesz je włączyć, otwierając Menedżera konfiguracji programu SQL Server w Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(lub SQL Server Configuration Manager) i upewnij się, że protokół TCP / IP i potoki nazwane są włączone . Jeśli nie możesz znaleźć Menedżera konfiguracji programu SQL Server w menu Start, możesz ręcznie uruchomić przystawkę MMC. Sprawdź w programie SQL Server Configuration Manager ścieżkę do przystawki zgodnie z posiadaną wersją.

    Menedżer konfiguracji programu SQL Server

  4. Sprawdź, czy tryb uwierzytelniania połączenia programu SQL Server jest zgodny z parametrami połączenia:

    • Jeśli łączysz się przy użyciu nazwy użytkownika i hasła, musisz skonfigurować program SQL Server tak, aby akceptował „Tryb uwierzytelniania serwera SQL”:

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
    • Jeśli łączysz się przy użyciu „Integrated Security = true” (tryb Windows), a ten błąd pojawia się tylko podczas debugowania aplikacji internetowych, musisz dodać ApplicationPoolIdentity jako login SQL Server :
  5. w przeciwnym razie uruchom Start -> Run -> Services.mscJeśli tak, czy działa?

Jeśli to nie działa, to

Wygląda na to, że nie wszystko zostało zainstalowane. Uruchom plik instalacyjny i wybierz opcję „Nowa instalacja lub dodaj funkcje do istniejącej instalacji”. Stamtąd powinieneś być w stanie upewnić się, że usługa silnika bazy danych zostanie zainstalowana.

Ravindra Bagale
źródło
2
@dido: Start-> Run-> Services.msc
Ravindra Bagale
3
Inną rzeczą do sprawdzenia jest nazwa instancji. W zależności od sposobu zainstalowania programu SQL Server może być konieczne podanie nazwy instancji po hoście lub nie.
Arvo Bowen,
Po pierwszej instalacji wydaje się, że konieczne jest ustawienie „TCP / IP i nazwanych potoków”
James A Mohler
3
To było głupie, ale dla mnie problem polegał na użyciu „localhost” jako nazwy serwera, a nie „localhost \ SQLEXPRESS01”, jak ustawiono w instalacji
Guy s
1
W moim przypadku SQLBrowser był wyłączony, a narzędzie konfiguracyjne nie było wymienione w folderze narzędzi sql. Aby uruchomić narzędzie konfiguracyjne za pomocą polecenia cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Aby automatycznie uruchomić SQLBrowser, jeśli konfiguracja narzędzie nie działa /programming/21375014/i-cannot-start-sql-server-browser
steven87vt
124

Idź do Start -> Programy -> Microsoft SQL ServerYYYY -> Narzędzia konfiguracyjne -> SQL Server YYYY Configuration Manager lub uruchom "SQLServerManager12.msc".

Upewnij się, że protokół TCP / IP jest włączony w protokołach klienta.

Następnie przejdź do „SQL Server Network Configuration” i dwukrotnie kliknij TCP / IP. Kliknij kartę „Adresy IP” i przewiń w dół. W sekcji „IP All” usuń dynamiczne porty TCP, jeśli są obecne, i ustaw port TCP na 1433. Kliknij OK, a następnie wróć do „SQL Server Services” i zrestartuj instancję SQL Server. Teraz możesz połączyć się przez localhost, przynajmniej ja mogłem.

wprowadź opis obrazu tutaj

Pamiętaj, że ten błąd może oczywiście wystąpić również podczas łączenia się z innymi aplikacjami. Przykład normalnych parametrów Web.configpołączenia aplikacji sieci web C # :

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
Ogglas
źródło
4
Wreszcie to zadziałało! Zmieniłem port w IP1, IP2, ... ale nie w IPAll. Zrobiło to, dzięki!
George
2
@George dokładnie taki sam jak Ty. Wyłączyłem nawet firewall i nic nie działało. W dynamicznych portach TCP był port 40xxx . Usunąłem go i umieściłem 1433 w porcie TCP dla IPAll, to też to zrobiło. Dzięki!
Alisson
To był również klucz dla mnie.
Erik Olson
1
Po wielu godzinach uderzania głową o ścianę to w końcu zadziałało. Dziękuję Ci.
Top Cat,
Świetne rozwiązanie. To ratuje mi dzień. Dzięki wielkie!
Lavande
13

w SQL SERVER EXPRESS 2012 powinieneś użyć "(localdb) \ MSSQLLocalDB" jako nazwy źródła danych, na przykład możesz użyć takich parametrów połączenia

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
POPIÓŁ
źródło
10

Miałem podobny problem - może moje rozwiązanie pomoże. Właśnie zainstalowałem MSSQL EX 2012 (instalacja domyślna) i próbowałem połączyć się z VS2012 EX. Brak przyjemności. Następnie przyjrzałem się usługom, potwierdzając, że SQL Server (SQLEXPRESS) rzeczywiście działa.

Jednak widziałem inną interesującą usługę o nazwie SQL Server Browser, która została wyłączona. Włączyłem go, odpaliłem, a następnie mogłem pobrać nazwę serwera w nowym połączeniu w VS2012 EX i połączyć się.

Dziwne, że wyłączyli usługę wymaganą do połączenia VS.

Michael Lawrence
źródło
Nie jest wymagane połączenie; Mam to wyłączone i mogę się połączyć. Ułatwia to tylko pracę, gdy nie znasz dokładnej nazwy hosta / instancji, z którą chcesz się połączyć, ponieważ umożliwia odpytywanie tych rzeczy przez inne oprogramowanie.
Simon Morgan
8

Najpierw wypróbuj najpopularniejsze rozwiązanie Ravindra Bagale .

Jeśli połączenie z hosta lokalnego do bazy danych nadal kończy się niepowodzeniem z błędem podobnym do następującego:

Nie można połączyć się z bazą danych SQL Server. Błąd: połączenie TCP / IP z hostem [adres IP], port 1433 nie powiodło się. Błąd: „Odmowa połączenia: połącz. Sprawdź właściwości połączenia. Upewnij się, że wystąpienie programu SQL Server jest uruchomione na hoście i akceptuje połączenia TCP / IP na porcie. Upewnij się, że połączenia TCP do portu nie są blokowane przez zaporę ogniową) ”.

  1. Otwórz Menedżera konfiguracji programu SQL Server.
  2. Rozwiń SQL Server Network Configuration dla danej instancji serwera.
  3. Kliknij dwukrotnie „TCP / IP”.
  4. W sekcji „Protokół” ustaw „Włączony” na „Tak”.
  5. W sekcji „Adresy IP” ustaw port TCP w polu „IP ​​All” (domyślnie 1433).
  6. W sekcji „Adresy IP” znajdź podsekcje z adresem IP 127.0.0.1 (dla IPv4) i :: 1 (dla IPv6) i ustaw zarówno „Włączone”, jak i „Aktywne” na „Tak” oraz port TCP na 1433.

    Właściwości TCP / IP

  7. Przejdź do Start > Control Panel > Administrative Tools > Servicesi uruchom ponownie usługę SQL Server ( SQLEXPRESS).

naXa
źródło
Wypróbowałem inne rozwiązania powyżej, zanim tu dotarłem. Ten naprawił to dla mnie! Odkryłem również, że pobranie rzeczy o nazwie psping pomogło mi przetestować połączenie. Przykład: psping 127.0.0.1:1433
JMI MADISON
7

Najpierw sprawdź, czy usługa SQL Server jest uruchomiona lub zatrzymana, jeśli została zatrzymana, po prostu ją uruchom, aby to zrobić, wykonaj poniższe czynności.

1. Start -> Uruchom -> Services.msc

wprowadź opis obrazu tutaj

  1. Przejdź do zakładki Standard w panelu usług, a następnie wyszukaj SQl Server (SQL2014)

„SQL2014” jest nadawane przeze mnie, w Twoim przypadku może to być Inna nazwa

wprowadź opis obrazu tutaj

to wszystko po uruchomieniu usługi SQL, możesz połączyć się z lokalną bazą danych.

mam nadzieję, że to komuś pomoże.

PK-1825
źródło
4

Wszystkie moje usługi działały zgodnie z oczekiwaniami, a nadal nie mogłem się połączyć.

Musiałem zaktualizować sekcję właściwości TCP / IP w programie SQL Server Configuration Manager dla moich protokołów SQL Server Express i ustawić port IPALL na 1433, aby połączyć się z serwerem zgodnie z oczekiwaniami.

wprowadź opis obrazu tutaj

contactmatt
źródło
3

Spróbuj zmienić uwierzytelnianie systemu Windows na tryb mieszany

Guru1
źródło
1

To dziwne, mam podobny problem. Pobrałem pakiet dla programu SQL 2012 Express z narzędziami, ale aparat bazy danych nie został zainstalowany.

Drugą ściągnąłem z witryny MS, a ta zainstalowała silnik bazy danych. Po ponownym uruchomieniu usługi były wymienione i gotowe do pracy.

user2832504
źródło
1

Moja sytuacja

  • pusta Nazwa instancji w SQL Server Management Studio> wybierz silnik bazy danych> Prawy przycisk myszy> Właściwości (Właściwości serwera)> Link Wyświetl właściwości połączenia> Produkt> Nazwa instancji jest pusta

  • Źródło danych =. \ SQLEXPRESS nie działa => użyj localhost w web.config (patrz poniżej)

Rozwiązanie : w pliku web.config

xxxxxx = nazwa mojej bazy danych bez .mdf yyyyyy = nazwa mojej bazy danych w eksploratorze baz danych VS2012

Możesz wymusić użycie protokołu TCP zamiast pamięci współużytkowanej, dodając prefiks tcp: do nazwy serwera w ciągu połączenia lub używając localhost.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

Marc Van Rumste
źródło
1

Miałem ten sam problem i stwierdziłem, że stało się to po zainstalowaniu aktualizacji dla mojego SQL 2012. Rozwiązaniem tego problemu było przejście do programów i funkcji oraz uruchomienie ich naprawy.

Mur
źródło
1

Problem polegał na tym, że nie sprecyzowałem .\. Podawałem tylko nazwę instancji:

  • nie działał: SQL2016
  • pracował: .\SQL2016
Cosmin
źródło
1

Po wykonaniu czynności, o których wspomniał @ Ravindra Bagale , wypróbuj ten krok. Server name: localhost\{Instance name you were gave}

wprowadź opis obrazu tutaj

Mohamed Musthaque
źródło
0

Spróbuj zmienić użytkownika będącego właścicielem usługi na system lokalny lub użyj swojego konta administratora.

W sekcji services zmieniłem Service SQL Server (MSSQLSERVER) Log On from NT Service \ Sql ... to Local System. Kliknij usługę prawym przyciskiem myszy i przejdź do zakładki Logowanie i wybierz przycisk opcji Lokalne konto systemowe. Możesz także zmusić innego użytkownika do uruchomienia go, jeśli lepiej pasuje.

DavidTheDev
źródło