Programing

'명명 된 파이프 공급자, 오류 40-SQL Server에 대한 연결을 열 수 없습니다'오류를 어떻게 수정합니까?

lottogame 2020. 6. 23. 07:40
반응형

'명명 된 파이프 공급자, 오류 40-SQL Server에 대한 연결을 열 수 없습니다'오류를 어떻게 수정합니까?


사이트에서 데이터베이스에 연결할 수없는 것 같습니다. 이 오류가 발생합니다.

명명 된 파이프 공급자, 오류 : 40-SQL Server에 대한 연결을 열 수 없습니다

로컬 IP 주소를 사용하여 공개 IP 주소를 사용하여 연결을 시도했습니다. 난 노력 했어:

  1. 예, 사이트는 서버와 통신 할 수 있습니다
  2. 명명 된 파이프 / TCP가 활성화되었습니다.
  3. 원격 연결이 허용됩니다.
  4. Windows 방화벽 이 꺼져 있습니다
  5. Windows 방화벽에서 포트 1433에 대한 예외가 발생했습니다.
  6. SQL Server 구성 관리자에서 모든 것을 활성화했습니다.

여기서 더 무엇을 할 수 있습니까?


이 문제를 해결하는 것은 매우 쉽습니다.

  1. 제어판으로 이동하십시오.
  2. 서비스를 검색하십시오.
  3. 검색 결과에서 로컬 서비스 창 열기
  4. MSSQLSERVER 서비스를 다시 시작하십시오.

단계의 스크린 샷 :

단계의 스크린 샷


그리고 가장 간단한 해결책-슬래시가 다시 있는지 확인하십시오 ...

모든 것이 올바르게 구성되고 명명 된 파이프, 사용자 액세스 권한이있을 때 SERVER / INSTANCENAME의 문제점 을 파악하는 데 약 1 시간이 걸렸 습니다. 갑자기 슬래시가 아니며 백 슬래시 ( \)입니다.

공포, 수치심 ...


SQL Server 설치 후 실제로 3 단계 프로세스입니다.

  1. 명명 된 파이프 사용 SQL Config Manager-> SQL Server 네트워크 Consif-> 프로토콜-> 명명 된 파이프-> 마우스 오른쪽 버튼 클릭-> 다시 시작

명명 된 파이프 사용

  1. 서버 SQL Config Manager-> SQL Server 서비스-> SQL Server (SQLEXPRESS)-> 마우스 오른쪽 단추 클릭-> 다시 시작 서버를 다시 시작하십시오.

  2. 올바른 서버 및 인스턴스 이름을 사용하십시오 (둘 다 필요합니다). 일반적으로 . \ SQLEXPRESS 입니다 (예 : QueryExpress 연결 대화 상자의 스크린 샷 참조).

여기에 이미지 설명을 입력하십시오

거기 있어요


방금 SQL SERVER 2012 개발자를 설치했습니다. 첫 번째 SSIS 패키지를 만들 때 연결 관리자 상자의 SQL Server 2012 데이터 도구에서 데이터 연결 작업을 만들려고 할 때이 파이프 오류가 발생했습니다. 위 게시물의 도움으로 해결했습니다.

명명 된 인스턴스를 선택하고 명명 된 인스턴스 SSQDatabase1을 호출하면 PC의 이름은 PCX1입니다. SSQDatabase1뿐만 아니라 PCX1 \ SSQDatabase1을 입력해야합니다. 그렇지 않으면 명명 된 파이프 오류가 발생합니다.


MSDN Social의 스레드 : Re : Named Pipes Provider, 오류 : 40-SQL Server에 대한 연결을 열 수 없습니다 . 오류와 관련된 가능한 문제 목록이 꽤 있습니다. 당신은 그들 중 하나가 당신이 경험하고 있는지 볼 수 있습니다.

  • SqlExpress 사용과 같은 잘못된 연결 문자열
  • SQL 인스턴스에서 명명 된 파이프 (NP)를 사용할 수 없습니다.
  • 원격 연결이 활성화되지 않았습니다
  • 서버가 시작되지 않았거나 연결 문자열에서 실제 서버가 아님을 가리킴
  • 잘못된 보안 컨텍스트와 같은 다른 이유
  • 작업중인 두 컴퓨터간에 기본 연결 테스트를 시도하십시오.

난 그냥 TCP / IP, VIA, SQL Server 구성 관리자에서 명명 된 파이프를 사용하도록 설정했습니다. 내 문제가 해결되었습니다. 자세한 내용은이 문제를 참조하십시오 명명 된 파이프 오류 40 해결


SERVER \\ INSTANCE NAME을 사용하십시오 . 프로젝트에서 이중 백 슬래시를 사용하면 문제가 해결되었습니다.


Damian 덕분에 ...

TCP / IP Named Pipes ... 둘 다 활성화

웹 구성 ... (로컬 호스트 용)

<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />

같은 문제가 있었다. 일부 서버를 마이그레이션해야했을 때 6 시간을 소비했습니다. 이 주제와 다른 주제에서 사용 가능한 모든 제안을 시도했습니다.

솔루션은 서버를 다시 시작하는 것처럼 간단했습니다!


내 경우에는 독립 실행 형 서버가 있었고 구성 관리자의 SQL Server 포트 기본 포트 1433을 일부 숫자로 변경하고 적용하기 위해 SQL 서브 서비스를 다시 시작했습니다. 로그인하면 관리 스튜디오를 통해 SQL Server에 연결할 수있었습니다. 서버에. 하지만 SQL Server를 통해 로컬 컴퓨터에서 연결할 수 없었습니다. 오류가 발생했습니다.

SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 별 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올바른지 확인하고

해당 SQL Server는 원격 연결을 허용하도록 구성되어 있습니다. (제공자 : 명명 된 파이프 공급자, 오류 : 40-SQL Server에 대한 연결을 열 수 없음) (Microsoft SQL Server, 오류 : 5)

아래의 모든 사항을 확인하고 확인했습니다.

-명명 된 파이프 / TCP가 활성화되었습니다. 원격 연결이 허용됩니다. -Windows 방화벽이 꺼져 있습니다-Windows 방화벽 포팅에 대한 예외가 발생했습니다 (서버가 동일한 서브넷 네트워크에 있으므로 제 경우에는 필요하지 않았습니다). -SQL Server 구성 관리자에서 모든 것을 활성화했습니다.

그런 다음 포트 번호를 기본값 1433으로 다시 변경하고 SQL Server 서비스를 다시 시작했는데 문제가 해결되어 로컬 관리 스튜디오에서 SQL Server를 연결할 수 있습니다.


나는 같은 문제가 있었다. MSSQL Server Management Studio 2017을 사용하고 다음 단계를 사용하여이 문제를 해결했습니다.

  1. SQL Server Services 서비스가 제대로 작동하는지 확인하십시오.
  2. 또한 양호한 상태의 SQL Server (MSSQLSERVER)에서 작동하는지 확인하십시오.
  3. 또한 SQL Server Browser가 제대로 작동하는지 확인하십시오.
  4. SQL Server (MSSQLSERVER)를 다시 시작하십시오.

고정했습니다.


다음 단계를 수행하십시오.

  1. 서비스 창 열기 ( "실행 상자"를 열고 services.msc를 입력하십시오).

  2. SQL 서비스 (SQL 접두사 포함)를 찾고 있습니다.

  3. 시작할 수 없습니다 (시작할 수없는 경우 4 단계로 이동).

  4. 각 서비스를 마우스 오른쪽 단추로 클릭-> 속성-> "로그온"탭으로 변경-> "로컬 ..."-> 0K로 로그온 선택 그런 다음 SQL 서비스를 다시 시작하십시오.

Open SQL을 시도하고 데이터베이스를 연결하십시오.


DB 이름이 잘못되었을 가능성이 큽니다. VS에 "DESKTOP-0I14BKI"와 같은 서버 이름이 표시되지만 SSMS를 열면 DESKTOP-0I14BKI \ SQLBLAHBLAH가 표시 되고 " \ SQLBLAHBLAH "(인스턴스 이름) 만 추가하면됩니다. )를 VS 연결 속성의 "서버 이름"에 추가하십시오.

당신은 볼 수 있습니다 :여기에 이미지 설명을 입력하십시오

고치다: 여기에 이미지 설명을 입력하십시오


Asp.net 코어로 작업하고 appsettings.json을 로컬 호스트 로 쓰는 것보다 다음과 같이 활성화 된 명명 된 파이프에 대한 SQL 인스턴스 이름을 쓴 후

  "ConnectionString": {
    "dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
  },

TL; DR; SQL Server 인스턴스가 작동하지 않는 동적 포트를 사용하고 있습니다. SQL Server에서 정적 포트 번호 1433을 사용하도록합니다.

전체 세부 정보 : 기본 인스턴스와 명명 된 인스턴스 또는 명명 된 인스턴스 만 혼합하면이 문제가 발생할 가능성이 큽니다.

주요 개념 : 컴퓨터에 설치된 각 Microsoft SQL Server 인스턴스는 다른 포트를 사용하여 들어오는 연결 요청을 수신합니다. SQL Server의 기본 인스턴스는 포트 # 1433을 사용합니다. 명명 된 인스턴스를 설치하면 명명 된 SQL Server 인스턴스에 해당하는 Windows 서비스를 시작할 때 결정되는 동적 포트를 사용하기 시작합니다.

내 코드는 (오류 코드 40) 내 VM에있는 유일한 명명 된 SQL Server 인스턴스에 연결하지 못했습니다. 가능한 해결책은 다음과 같습니다.

솔루션 # 1 : SQL Server 인스턴스에 연결하려는 클라이언트 코드는 SQL Server 브라우저 서비스의 도움을 받아 명명 된 인스턴스가 들어오는 연결을 수신하는 포트 번호를 파악합니다. 컴퓨터에서 SQL 브라우저 서비스가 실행 중인지 확인하십시오.

해결 방법 # 2 : 아래 스냅 샷에 표시된 것처럼 명명 된 SQL Server 인스턴스가 SQL Server 구성 관리자에서 사용중인 포트 번호 (노란색)를 확인하십시오.

여기에 이미지 설명을 입력하십시오

연결 문자열에서 또는 sqlcmd아래 표시된대로 해당 포트 번호를 사용하십시오 .

sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt

솔루션 # 3 : 명명 된 인스턴스가 기본 인스턴스에서 사용되는 포트 # 1433을 사용하도록합니다. 기본 SQL Server 인스턴스가 이미 포트 # 1433을 사용하고 있으므로 컴퓨터에 기본 SQL Server 인스턴스가없는 경우에만 작동합니다. 두 개의 다른 Windows 서비스에서 동일한 포트 번호를 사용할 수 없습니다.

마크 TCP Dynamic ports빈과에 필드 TCP Port1433 필드.

여기에 이미지 설명을 입력하십시오

아래와 같이 연결 문자열에서 포트 번호를 변경하십시오.

sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt

또는

sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt

참고 : TCP / IP 설정을 변경할 때마다 해당 Windows 서비스를 다시 시작해야합니다.

흥미롭게도 동일한 오류를 재현하기 위해 동적 포트 설정으로 돌아 갔을 때 오류를 해결 한 후에는 오류가 발생하지 않았습니다. 이유가 확실하지 않습니다.

SQL Server의 동적 포트에 대한 자세한 내용은 아래의 흥미로운 스레드를 읽으십시오.

How to configure SQL Server Port on multiple instances?

When is a Dynamic Port “dynamic”?

When to use a TCP dynamic port and when TCP Port?

I got leads to solution of my problem from this blog.


After following all the steps mentioned here, if it still does not connect, try adding the DNS with the IP address in the hosts file in the etc folder. Adding an IP address instead of DNS name in the connection string should be a temporary solution to check if the connection actually works.


I tried using the local IP address to connect as well as a public one. I've tried:

Yes, the site can communicate with the server Named pipes/TCP is enabled. Remote connections are allowed. Windows Firewall is off Created an exception for port 1433 in Windows Firewall. Enabled everything in SQL Server Configuration Manager.

i ensured and did the above as well and I just want to share that the DOUBLE BACKSLASH

oBuilder.DataSource = "SPECIFICPCNAME\SQLEXPRESS";

Using a SINGLE BACKSLASH resulted into a build error i.e.: Error 1 Unrecognized escape sequence

I hope this helps the next guy - I've sacrificed dinner, midnight snack and NBA highlights time solving this (shame)

Thanks to [Tamizh venthan] ^_^


Enable TCP/Ip , Piped Protocol by going to Computer Management ->SQL and Services, ensure the Service is On. Enbale the port on the Firewall. Try to login through Command Prompt -> as Admin; last the User Name should be (local)\SQLEXPRESS. Hope this helps.


Open SQL Server Configuration Manager

  1. Select SQL Server Services from right.
  2. Find your server from right and go to its properties (with right click)
  3. Change log on method to Local System.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


I had the same problem and solved the problem by disabling my firewall(ESET).

The first step to solve this problem should be to try pinging your own computer from another computer. If you have firewall on, you may not be able to ping yourself. I tried pinging my own pc, then ping was failed(didnt get response from the server)


I have suggested below steps to resolve your issue How do I fix the error 'Named Pipes Provider, error 40 - Could not open a connection to' SQL Server'

  1. Check for working fine SQL Server Services services or not.
  2. Also check for working in good condition SQL Server (MSSQLSERVER).
  3. Also check for working fine SQL Server Browser.
  4. Delete all earlier Aliases, now create new aliases as per your requirements.
  5. Now check for working of SQL Server Default Port 1433
  6. Next click on Client Protocols in instance, then click on TCP/IP, now click on mouse right click, open the Property, here you can make assure your working fine your default port SQL 1433.
  7. Open your SQL Server Management Studio, then right click, click on "Property" option and then click on Connections tab, then finally tick for Allow remote Connections to this server.
  8. Check for right working or your Ping IP Host.

I was trying to add a new connection in VS2015. None of the suggestions here worked. Suspecting some sort of a bug in the wizard, especially since SSMS was able to connect just fine, I decided to try and trick it. It worked!

  1. Instead of adding the connection, use "Create new SQL Server Database". Enter your server name and a random name for the new DB, e.g. "test".

  2. Assuming this succeeds, open Server Explorer in VS, locate the connection in Data Connections, right-click it and select Modify Connection.

  3. Change "test" (from step 1) to the name of the existing database you want to connect to. Click "Test Connection". This time it should work!

  4. Delete the temporary database you created in step 1.


I have one more solution, I think. I recently had changed my computer name so, after I couldn't connect still after trying all above methods. I changed the Server name.. Server name => (browse for more) => under database engine, a new server was found same as computers new name. This worked, and life is good again.


I struggled for ages on this one before I realized my error - I had used commas instead of semicolons in the connect string


I had this issue but none of the suggestions above fixed it.

I was seeing this issue when I deployed my website to IIS. The fix was to go into advanced settings against the default app pool and change the identity property from the default to Administrator.


In my case, I opened SQL Server Management Studio and searched for SQLEXPRESS in my Database engine. It had two instances and I selected the correct one.

여기에 이미지 설명을 입력하십시오


For me it was a Firewall issue.

First you have to add the port (such as 1444 and maybe 1434) but also

C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

and

%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE

The second time I got this issue is when I came back to the firewall, the paths were not correct and I needed to update form 12 to 13! Simply clicking on browse in the Programs and Services tab helped to realise this.

Finally, try running the command

EXEC xp_readerrorlog 0,1,"could not register the Service Principal Name",Null

For me, it returned the error reason


I tried pretty much everything on this page but I had some underlying issues which were actually what needed to be resolved. I was unable to do certain things like open SQL Server Configuration Manager, which ended up being corrupt/missing WMI provider files.

There are lots of tedious ways to resolve this issues according to what I've read, but the tool from tweaking.com was able to remove and replace/repair my WMI (Windows Management Instrumentation) Provider files.

I used to do computer repair and overall the tweaking.com tool really impressed me, and it was suggested from one of the WMI error forum pages I went to.

이 문제를 해결 한 후 로컬 및 원격으로 SQL 데이터베이스에 연결할 수있었습니다.

이것이 누군가를 돕기를 바랍니다.


SQL 원격 연결을 위해 서버에서 포트 번호 1433을여십시오.


매우 간단한 솔루션

사용 (local)\InstanceName을의 그. 그것은 나를 위해 일했다.

참고 : https://stackoverflow.com/questions/9945409/how-do-i-fix-the-error-named-pipes-provider-error-40-could-not-open-a-connec

반응형