Ż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.


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.


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


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


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.


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.

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


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.

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

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.


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.


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.


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.


0

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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.