programing

파이프의 다른 쪽 끝에는 프로세스가 없습니다(SQL Server 2012).

batch 2023. 4. 11. 21:50
반응형

파이프의 다른 쪽 끝에는 프로세스가 없습니다(SQL Server 2012).

다음 오류가 발생했습니다.

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)

알고 있습니다. 이 사이트에도 비슷한 질문이 있습니다. 답은 TCP/IP와 파이프를 활성화하는 것입니다.그러나 둘 다 활성화했지만 여전히 작동하지 않습니다.

MSQL 오류

Microsoft SQL Server 2012를 사용하고 있으며 사용자에게 모든 권한이 있습니다.

서버는 디폴트로 Windows 인증으로만 설정되어 있습니다.에러의 원인이 그것이라고 하는 통지가 없기 때문에, 알기 어렵습니다.SQL Management 스튜디오는 SQL 인증만 사용하여 사용자를 생성하는 경우에도 경고를 표시하지 않습니다.

, Windows에서 SQL 인증으로 전환:

  1. 하여[ ]를 선택합니다.properties;
  2. 선택합니다.security표시
  3. 를 유효하게 합니다.SQL Server and Windows Authentication mode;
  4. SQL Server 서비스를 재시작합니다.

이제 로그인/비밀번호로 연결할 수 있습니다.

다음은 Microsoft의 지시사항입니다.https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/change-server-authentication-mode?view=sql-server-ver15

이 문제를 해결하려면 Windows 인증을 사용하여 SQL Management Studio에 연결하고 서버 노드 속성 -> 보안을 마우스 오른쪽 버튼으로 클릭하여 SQL Server 및 Windows 인증 모드를 활성화합니다.'sa'를 사용하는 경우 계정이 활성화되었는지 확인하십시오.이렇게 하려면 로그인 아래에서 'sa'를 열고 상태를 확인하십시오.

sa admin 사용

이 방법으로 동작하지 않으면 SQL Server를 재설치해야 할 수 있습니다.

또한 서비스로 이동하여 SQL 서버여기에 이미지 설명 입력 인스턴스를 재시작할 수도 있습니다.

최근에는 통합 보안에 대해서도 이 문제를 쉽게 해결할 수 있었습니다만, 주로 "Trusted_Connection"을 추가하는 것을 잊었기 때문입니다.연결 문자열에 =True"를 입력합니다.

당연한 것처럼 보일지 모르지만, connectionstrings.com에서 접속 스트링 포맷을 복사하고 접속 스트링의 일부가 없어졌다는 것을 깨닫기까지 20분 정도 걸렸어요.

심플하고 바보 같은 기분이 들지만, 그건 내게는 해답이었다.

이 오류의 또 다른 원인은 데이터베이스 이름이 잘못되었거나 존재하지 않는 것입니다.

강제(TCP/IP 접속을 )127.0.0.1localhost ★★★★★★★★★★★★★★★★★」.)는 수 있습니다).내 경우 연결 문자열에 지정된 데이터베이스 이름이 잘못되었습니다.

체크리스트는 다음과 같습니다.

  • 이름 있는 파이프가 설정 매니저로 유효하게 되어 있는 것을 확인합니다(서버를 재기동하는 것을 잊지 말아 주세요).
  • 접속처의 데이터베이스가 존재하는 것을 확인합니다.
  • SQL Server 인증(또는 혼합 모드)이 활성화되어 있는지 확인합니다.

이것을 확인해 주세요.또, TCP/IP, Names PipeLine, 공유 메모리도 유효하게 합니다.

SQL 자격 증명을 사용하여 로그인하려는 경우 레지스트리에서 SQL Server용 로그인 모드를 변경하여 SQL Server와 윈도우즈 인증을 모두 허용하도록 시도할 수도 있습니다.

  1. 재편집 열기
  2. SQL 인스턴스 키로 이동합니다(인스턴스 이름에 따라 다를 수 있습니다).컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSQL14.SQLEXPRESS\MSSQL서버\
  3. Login Mode를 2로 설정합니다.

여기에 이미지 설명 입력

  1. SQL 서비스와 SQL Server Management Studio를 다시 시작하고 다시 시도하십시오.

두 번째로 이 문제에 직면하여 이전의 모든 답변이 실패하였습니다.다행히 다음 요청이 처리됩니다.

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go

로그인 사용자의 패스워드가 만료되어 같은 예외가 발생하였습니다.그 후 Windows 인증 모드로 로그인하여 관련 사용자의 비밀번호를 변경하면 문제가 해결되었습니다.

네, 이 오류는 "뭔가 실패했습니다.무엇을 알아내세요"와 같은 오류일 수 있습니다.제 경우는 잘못된 사용자 이름입니다.SQL Server 2019 RC1.

이 오류도 원인이 간단하지만 분명하지 않습니다.비밀번호가잘못되어있습니다.새로 설치된 SQL 2016 서버에서 "로그인 실패"만 수신하지 못한 이유를 잘 모르겠습니다.

서버와의 접속이 정상적으로 확립되었습니다만, 로그인 프로세스중에 에러가 발생했습니다.(필수:공유 메모리 공급자, 오류: 0 - 파이프의 다른 쪽 끝에 프로세스가 없습니다.)"

내 연결은 다음과 같습니다.

서버=POS06\SQLEXPRESS; AttachDbFilename=C:...\Datas.mdf;초기 카탈로그= 데이터; 사용자 ID= sa; Pwd=12345; 연결 시간 초과=10;

단, My SQL은 POS06\MSQL2014입니다.

연결 문자열을 다음으로 변경합니다.

server=POS06\MSQL2014; AttachDbFilename=C:...\Datas.mdf;초기 카탈로그= 데이터; 사용자 ID= sa; Pwd=12345; 연결 시간 초과=10;

효과가 있었어요

항상 이러한 자격 증명을 사용하여 SQL Management Studio에서 로그인하십시오.이로 인해 실행 시 얻을 수 없는 세부 정보가 코드에서 더 많이 노출될 수 있습니다.SQL + Windows 인증을 확인하고 서버를 재부팅했지만 아직 성공하지 못했습니다.SQL Management를 사용하여 로그인하려고 하면 다음 메시지가 나타납니다.

스크린샷

로그인이 생성되기 몇 분 전에 패스워드가 만료되었습니다.어쨌든, 새로운 패스워드가 설정되고 연결 문자열이 업데이트되고 모든 것이 정상입니다.

이것은 다른 사람들에게 도움이 될 수 있다.집에서 db 루틴을 작성한 후 모두 정상적으로 작동합니다.그것을 작동시켜, 에러도 발생.같은 오류, 다른 이유를 주장할 수 있습니다.코드를 수정할 때 데이터베이스 이름을 잘못 입력했습니다.오! 커피 더 주세요)지금 돌이켜보면 로그인/사용자의 경우(관리 계정)는 괜찮았지만 데이터베이스 이름이 잘못되어 파이프 끝에는 아무것도 없었습니다."데이터베이스는 존재하지 않습니다..."라고 말하는 것은 어떨까요?그리고 확실히 하세요.

[보안(Security)]-> [로그인(Logins)]에서 사용자가 지정되어 있는지 확인합니다.아니오인 경우 사용자를 추가하고 다시 시도하십시오.

다른 답변에 따라 아직 작동하지 않으면 컴퓨터를 재시작하여 Windows에서 SQL Server 서비스를 효과적으로 재시작합니다.

이 경우 데이터베이스가 복원되어 사용자가 이미 연결에 사용되었습니다.사용자를 데이터베이스에서 삭제하고 로그인을 위한 사용자 매핑을 다시 작성해야 했습니다.

  1. 사용자를 드롭합니다.

    DROP USER [MyUser]
    

사용자가 스키마를 소유하고 있으면 실패할 수 있습니다.사용자를 드롭하기 전에 dbo에 할당해야 합니다.아래 첫 번째 쿼리를 사용하여 사용자가 소유한 스키마를 가져온 다음 두 번째 쿼리를 사용하여 해당 스키마의 소유자를 변경하십시오(HangFire는 이전 쿼리에서 얻은 스키마입니다).

select * from information_schema.schemata where schema_owner = 'MyUser'
ALTER AUTHORIZATION ON SCHEMA::[HangFire] TO [dbo]     
  1. 사용자의 사용자 매핑을 업데이트합니다.관리 스튜디오에서 보안 -> 로그인 -> 사용자 열기 -> 사용자 매핑 탭으로 이동 -> 데이터베이스를 활성화하고 적절한 역할을 부여합니다.

내 경우:사용자에게 sysadmin 역할을 할당합니다.

  1. Windows 인증 사용자로 로그인
  2. [ Security ]-> [ Login ]-> [ User ]우클릭 -> [ Assign sysadmin ]으로 이동합니다.

이 경우 VPN 경유로 리모트로 로그인이 정상적으로 동작합니다.그러나 sql 서버가 설치된 서버에서 연결하는 동안 오류가 발생했습니다.

인스턴스 이름이 기본값(예:)이 아닌 것으로 확인되었습니다.SQLEXPRESS.따라서 접속할 때는 명확하게 지정해야 합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

서버명: .<instance_name> 예.".\I01"

리모트로 접속하고 있는 경우는, 이 조작을 실시할 필요가 없습니다.< server _ hostname > , < port _ number > 。

내 경우 데이터베이스가 아직 생성되지 않았지만(존재하지 않음) 오류입니다.EF Core 7.0.3

"파이프의 다른 쪽 끝에는 프로세스가 없습니다."

언급URL : https://stackoverflow.com/questions/27267658/no-process-is-on-the-other-end-of-the-pipe-sql-server-2012

반응형