Żaden proces nie znajduje się na drugim końcu potoku (SQL Server 2012)

96

Mam ten błąd:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

Wiem, że w tej witrynie są podobne pytania, a odpowiedź brzmi, aby włączyć TCP / IP i potoki. Ale włączyłem oba i nadal nie działa:

Błąd MSSQL

Używam programu Microsoft SQL Server 2012 i użytkownik ma pełne uprawnienia.

Iter Ator
źródło
wypróbuj pinal rozwiązania dave blog.sqlauthority.com/2009/05/21/…
GeoVIP
To zadziałało, gdy ponownie połączyłem się z uwierzytelniania serwera na uwierzytelnianie systemu Windows.
ganji raajkumar
1
Co mi zadziałało (sql express 2016) ... Usunięcie uwierzytelniania mieszanego pozostawiając tylko uwierzytelnianie systemu Windows, ponowne uruchomienie usługi, przełączenie z powrotem na uwierzytelnianie mieszane, ponowne uruchomienie usługi. dopóki tego nie zrobiłem, nic nie naprawiło błędu braku procesu
Rostol
1
Aby zobaczyć, jaka jest wartość, sprawdź parametry połączenia w pliku konfiguracyjnym. Dla mnie ktoś zmodyfikował jedną z nazw serwerów i zarejestrował ją. Mój kod próbował trafić do bazy danych, która nie istniała na moim serwerze.
camainc
dla mnie też nie działa.
Sam

Odpowiedzi:

127

Serwer był domyślnie ustawiony na uwierzytelnianie systemu Windows. Nie ma żadnego powiadomienia, że ​​przyczyną błędów jest to, więc trudno to rozgryźć. Studio zarządzania SQL nie ostrzega, nawet jeśli utworzysz użytkownika tylko z uwierzytelnianiem SQL.

Odpowiedź brzmi więc: Przełącz się z uwierzytelniania systemu Windows na uwierzytelnianie SQL :

  1. Kliknij prawym przyciskiem myszy nazwę serwera i wybierz properties;
  2. Wybierz securitykartę;
  3. Włącz SQL Server and Windows Authentication mode;
  4. Uruchom ponownie usługę SQL Server.

Możesz teraz połączyć się za pomocą swojego loginu / hasła.

Iter Ator
źródło
5
Opcja została poprawnie zaznaczona, więc zaznaczyłem „Uwierzytelnianie Windows”, ponownie uruchamiam usługę, a następnie zaznaczam „Uwierzytelnianie Windows + Uwierzytelnianie SQL”, aby naprawić ten problem. Tak szczęśliwy!
Groco
2
Aby wyjaśnić komentarz @ Groco: Zaloguj się za pomocą Windows Authentication>> Kliknij prawym przyciskiem myszy serwer >> Properties>> Security(Pod Select a page) >> Pod Server Authenticationwybierz SQL Server and Windows Authentication mode. Zamknij program SQL Server Management Studio, uruchom ponownie usługę SQL Server i spróbuj zalogować się ponownie.
Minh Tran,
1
Problem, który miałem, Server Authenticationbył ustawiony na Windows Authentication mode. I niezależnie od poprawnego wprowadzenia hasła, zawsze byłem witany A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.). Przez cały błąd udało mi się zalogować za pomocąWindows Authentication
Minh Tran
Dziękuję bardzo. ponowne uruchomienie usługi Sql naprawiło mój problem.
user1282609
Próbowałem zalogować się przy użyciu „sa” i otrzymałem ten sam błąd.
RonJohn
58

Aby rozwiązać ten problem, połącz się z SQL Management Studio przy użyciu uwierzytelniania systemu Windows, a następnie kliknij prawym przyciskiem myszy węzeł serwera Właściwości-> Zabezpieczenia i włącz tryb uwierzytelniania SQL Server i Windows. Jeśli używasz „sa”, upewnij się, że konto jest włączone. Aby to zrobić, otwórz „sa” w sekcji Logins i wyświetl Status.

włącz sa admin

Jeśli to nie zadziałało, może być konieczna ponowna instalacja programu SQL Server

nzchris
źródło
Po wykonaniu tej czynności uruchom ponownie SQL Server. Następnie spróbuj się zalogować.
Webucator
27

Możesz także spróbować przejść do usług i ponownie uruchomić instancję serwera Sqlwprowadź opis obrazu tutaj

Bez nazwy
źródło
3
To rozwiązało mój problem po wypróbowaniu wszystkich innych poprawek.
mini998
1
Uh, czy nie powinno to być opatrzone dużą etykietą ostrzegawczą, że ponowne uruchomienie usługi serwera sql tylko dlatego, że nie możesz się połączyć, zepsuje inne rzeczy, które pomyślnie się połączyły?
undrline
To działało świetnie dla mnie. Widzę, jak łatwo ludziom zaniedbać rozważenie tego rozwiązania.
TechnicalTim
20

Niedawno miałem to również ze względu na zintegrowane bezpieczeństwo. Okazuje się, że mój problem był właściwie dość prosty do naprawienia, ale głównie dlatego, że zapomniałem dodać „Trusted_Connection = True” do moich parametrów połączenia.

Wiem, że może się to wydawać dość oczywiste, ale musiałem pracować przez około 20 minut, zanim zdałem sobie sprawę, że skopiowałem format parametrów połączenia z connectionstrings.com i brakowało tej części parametrów połączenia.

Proste i czuję się trochę głupio, ale to była odpowiedź dla mnie.

Joe Walters
źródło
1
Wypróbowałem wszystkie komentarze, ale to nie zadziałało. Twoje rozwiązanie zadziałało idealnie dla mnie. Dziękuję Ci bardzo.
Royal.
była to ostatnia rzecz, jaką próbowałem po tym, jak wszystkie inne rzeczy, takie jak sprawdzenie, czy tcp jest włączony, dodanie uwierzytelniania w trybie mieszanym i ponowne uruchomienie usługi przeglądarki sql, zadziałało. dzięki
Myke Black
10

Innym powodem tego błędu może być niepoprawna lub nieistniejąca nazwa bazy danych.

Wymuszenie połączenia TCP / IP (poprzez podanie 127.0.0.1zamiast localhostlub .) może ujawnić prawdziwą przyczynę błędu. W moim przypadku nazwa bazy danych określona w parametrach połączenia była niepoprawna.

Oto lista kontrolna:

  • Upewnij się, że nazwany potok jest włączony w menedżerze konfiguracji (nie zapomnij zrestartować serwera).
  • Upewnij się, że baza danych, z którą się łączysz, istnieje.
  • Upewnij się, że uwierzytelnianie SQL Server (lub tryb mieszany) jest włączone.
Mohammad Dehghan
źródło
co się stało z managerem konfiguracji w express 2016? Nie widzę tego dostępnego? Och, muszę teraz uruchomić SQLServerManager13.msc
Kirsten Greed
Po zmianie na 127.0.0.1 pojawił się komunikat o błędzie Message = Wystąpił błąd związany z siecią lub wystąpieniem podczas nawiązywania połączenia z serwerem SQL. Serwer nie został znaleziony lub nie był dostępny. Sprawdź, czy nazwa instancji jest poprawna i czy SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: SQL Network Interfaces, błąd: 26 - Błąd podczas lokalizacji serwera / instancji określony) Źródło = Core .Net SqlClient Data Provider
Kirsten Greed
1
@kirsteng Sprawdź zainstalowane instancje SQL Server. Czy zainstalowałeś wystąpienie domyślne (MSSQLSERVER)?
Mohammad Dehghan
Uwierzytelnianie SQL Server w trybie mieszanym zrobiło to za mnie. Chłopaki, jeśli robisz nową instalację SQL Server Express, kiedy chcesz dodać użytkownika do swoich potrzeb programistycznych, musisz zmienić go na tryb mieszany, w przeciwnym razie dostępne będzie tylko uwierzytelnianie systemu Windows.
Eduardo
To (w pewnym sensie) działało. Kiedy zmieniłem bzdury localdb na 127.0.0.1, to dotarło.
Eric
9

Sprawdź to również wprowadź opis obrazu tutajSprawdź w konfiguracji TCP / IP, nazwy PipeLine i pamięć współdzielona włączone

Muhammad Bilal
źródło
8

Jeśli próbujesz zalogować się przy użyciu poświadczeń SQL, możesz również spróbować zmienić LoginMode dla SQL Server w rejestrze, aby zezwolić zarówno na uwierzytelnianie SQL Server, jak i Windows.

  1. Otwórz regedit
  2. Przejdź do klucza instancji SQL (może się różnić w zależności od nazwy instancji): Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. Ustaw LoginMode na 2

wprowadź opis obrazu tutaj

  1. Uruchom ponownie usługę SQL i SQL Server Management Studio i spróbuj ponownie.
gotorg
źródło
to jest najbardziej trafna odpowiedź.
sushh
PRACOWANY jak urok!
Asim
5

Z tym problemem mam do czynienia po raz drugi i wszystkie poprzednie odpowiedzi zawiodły, na szczęście następująca prośba załatwia sprawę:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go
Groco
źródło
4

Dla mnie hasło wygasło dla mojego użytkownika logowania i dostałem ten sam wyjątek. Następnie loguję się w trybie uwierzytelniania systemu Windows i zmieniam hasło dla skojarzonego użytkownika, co rozwiązało mój problem.

Bence Végert
źródło
ratujesz mój dzień !!
uczeń
3

W przypadku tego błędu przyczyna była prosta, ale nieoczywista: nieprawidłowe hasło. Nie jestem pewien, dlaczego nie otrzymałem tylko komunikatu „Błąd logowania” ze świeżo zainstalowanego serwera SQL 2016.

Stefan
źródło
3

Tak, ten błąd może równie dobrze brzmieć „coś się nie udało, powodzenia w zastanawianiu się co” - w moim przypadku była to zła nazwa użytkownika. SQL Server 2019 RC1.

Anssssss
źródło
2

Mam ten sam problem „Połączenie z serwerem zostało pomyślnie nawiązane, ale następnie wystąpił błąd podczas procesu logowania. (Dostawca: Dostawca pamięci współużytkowanej, błąd: 0 - Żaden proces nie znajduje się na drugim końcu potoku)”.

Moje połączenie to:

serwer = POS06 \ SQLEXPRESS; AttachDbFilename = C: ... \ Datas.mdf; Initial Catalog = Datas; ID użytkownika = sa; Pwd = 12345; Limit czasu połączenia = 10;

Ale My SQL to POS06 \ MSQL2014

Zmień parametry połączenia na

serwer = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; Initial Catalog = Datas; ID użytkownika = sa; Pwd = 12345; Limit czasu połączenia = 10;

zadziałało.

Doan bien
źródło
0

upewnij się, że podałeś użytkownika w Security-> Logins, jeśli nie - dodaj go i spróbuj ponownie.

elkoo
źródło
0

Postępuj zgodnie z drugą odpowiedzią, a jeśli nadal nie działa, uruchom ponownie komputer, aby skutecznie ponownie uruchomić usługę SQL Server w systemie Windows.

cschaefer
źródło
Zwykle można również ponownie uruchomić usługę SQL dla konkretnej bazy danych, lokalizując ją wservices.msc
Zimano,
0

Zawsze staraj się logować przy użyciu tych poświadczeń w SQL Management Studio. Może to ujawnić więcej szczegółów, których nie otrzymujesz w swoim kodzie w czasie wykonywania. Sprawdziłem uwierzytelnianie SQL + Windows, zrestartowałem serwer, ale nadal bez powodzenia. Po próbie zalogowania się przy użyciu usługi SQL Management otrzymałem następujący monit:

zrzut ekranu

W jakiś sposób hasło wygasło, chociaż login został utworzony zaledwie kilka minut wcześniej. W każdym razie, nowe hasło ustawione, parametry połączenia zaktualizowane i wszystko w porządku.

CyberDude
źródło