“서버에 연결할 수 없음-네트워크 관련 또는 인스턴스 별 오류”가 표시되는 이유는 무엇입니까?


378

SQL Server에 연결하려고 할 때 다음 오류가 발생합니다.

108.163.224.173에 연결할 수 없습니다.

SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 별 오류가 발생했습니다.

서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오.

(제공자 : 명명 된 파이프 공급자, 오류 : 40-SQL Server에 대한 연결을 열 수 없음) (Microsoft SQL Server, 오류 : 1326)

이 오류는 Visual Studio 2010에서 gridview로 데이터베이스를 구성하려고 할 때 발생합니다.이 오류를 디버깅하는 방법에 대한 손실이 있습니다.

이 오류를 어떻게 디버깅 하시겠습니까? 오류 메시지에 언급 된 것 외에 실제로 어떤 일이 일어나고 있는지 확인하려면 어떤 단계를 수행해야합니까?


11
SQL Server 연결 테스트에는 Ping을 신뢰할 수 없으며 Windows Server에서는 ICMP 에코 요청이 기본적으로 비활성화되어 있습니다. 잘못된 사용자 이름 또는 비밀번호는 오류가 전혀 알려주지 않는 것이지, 완전히 다른 오류입니다.
Sean Airey

1
이 기사를 살펴보면
Sean Airey

3
SQL Server {version} Express에서이 오류를 처음으로 설정할 때이 오류를 수신 한 경우 스크린 샷으로 여기에 대한 답변을 참조하십시오. 나는 StackOverflow로 돌아와서 유일한 대답 이었기 때문에 다시 대답을 사용했습니다. stackoverflow.com/questions/1391503/…
MacGyver

로컬 호스트에 연결하려고 할 때 가상 서버 에서이 문제가 발생했습니다. OS를 시작할 때 어떤 종류의 오류가있는 것처럼 보였습니다. 제 경우에는 깨끗하게 재부팅하여 모든 것이 다행스럽게 해결되었습니다.
Qohelet

오늘 나는 이것에 많은 시간을 보냈습니다. 마침내 나를 위해 일한 것은 다음과 같습니다. Open Sql Server Configuration Manager- > Protocols for <INSTANCE> -> TCP / IP- > IP Addresses (Tab) . 마지막 IP 항목으로 이동하여 TCP 포트 1433을 언급하십시오 . services.msc를 사용하여 SQL Server (INSTANCE) 를 다시 시작하십시오 . 그 후 문제가 해결되었습니다.
ani627

답변:


301

다음 기술이 도움이되었습니다.

  1. 데이터베이스 엔진이 원격 연결을 허용하도록 구성되어 있는지 확인하십시오 .

    • 시작> 모든 프로그램> SQL Server 2005> 구성 도구> SQL Server 노출 영역 구성
    • 서비스 및 연결을위한 노출 영역 구성을 클릭하십시오
    • 문제가있는 인스턴스를 선택하고> 데이터베이스 엔진> 원격 연결
    • 로컬 및 원격 연결 활성화
    • 인스턴스 재시작
  2. 사용중인 SQL Server 인스턴스 및 포트 의 방화벽에서 예외작성 해야 할 수 있습니다 .

    • 시작> 실행> Firewall.cpl
    • 예외 탭을 클릭하십시오
    • sqlservr.exe 추가 (일반적으로에 C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin설치되어 있으며 실제 폴더 경로는 설치 확인) 및 포트 (기본값은 1433)
    • 연결 문자열도 확인하십시오
  3. 귀하의 경우 확인 SQL 서버 서비스가 실행되고 제대로 :

    • 모든 프로그램> Microsoft SQL Server 2008> 구성 도구> SQL Server 구성 관리자> SQL Server 서비스로 이동하십시오.
    • SQL Server 서비스 상태가 실행 중인지 확인하십시오.

    또한 원격 서버가 동일한 네트워크에 있는지 확인하십시오 . 실행 sqlcmd -L서버가 네트워크 목록에 포함되어 있는지 확인합니다.

  4. SQL Server 구성에서 TCP / IP 사용

    둘 이상의 SQL Server가 네트워크를 통해 연결되면 TCP / IP를 사용하여 모든 통신을 수행합니다. SQL Server 설치의 기본 포트는 1433입니다.이 포트는 SQL Server 구성 관리자를 통해 변경할 수 있습니다. SQL Server를 연결하려면 TCP / IP가 활성화되어 있어야합니다.

    • 모든 프로그램으로 이동 >> Microsoft SQL Server 2008 >> 구성 도구 >> SQL Server 구성 관리자 >> TCP / IP 선택
    • TCP / IP를 마우스 오른쪽 버튼으로 클릭 >> 활성화를 클릭

    모든 변경 내용을 적용하려면 SQL Server 서비스를 다시 시작해야합니다. 마우스 오른쪽 버튼을 클릭하고 메뉴 속성으로 이동하여 SQL Server의 기본 포트를 변경할 수있는 위치를 선택하십시오.


10
SQL Server 2014 Express를 사용할 때 SQL Server 구성에서 TCP / IP 사용이 해결책이었습니다.
Mike Richards

73
오늘 나는 이것에 많은 시간을 보냈습니다. 마침내 나를 위해 일한 것은 다음과 같습니다. Open Sql Server Configuration Manager- > Protocols for <INSTANCE> -> TCP / IP- > IP Addresses (Tab) . 마지막 IP 항목으로 이동하여 TCP 포트 1433을 언급하십시오 . 이제 services.msc를 사용하여 SQL Server (<INSTANCE>) 를 다시 시작하십시오 . 그 후 문제가 해결되었습니다!
ani627

1
또한 로컬 Sql 서버에서 특정 문제에 직면하고 운영 체제의 로컬 서비스를 확인하고 특정 Sql 서비스를 검색하여 하나씩 시작하여 해결했습니다. 완벽하게 작동했습니다.
파이살 나시어

4
나도 같은 문제가 있었고 SQL Server에 로그온하여 mssqlserer 서비스가 중지되었다는 것을 알았습니다. 지금 인스턴스에 연결할 수있었습니다
Rak

15
또한 기억ENABLE SQL Server Browser서비스를 제공합니다. 내 시간에 여러 SQL 서버를 설정했습니다 ... 그러나이 단계에는 항상 다른 시나리오가 관련된 것 같습니다 :)
mschr

125

나는 나를 위해 해결책을 얻었다 :

"SQL Server 구성 관리자"를 엽니 다.

이제 "SQL Server 네트워크 구성"을 클릭하고 "에 대한 프로토콜을 클릭 이름 "

"TCP / IP"를 마우스 오른쪽 버튼으로 클릭하십시오 (활성화되어 있는지 확인하십시오). 속성을 클릭하십시오.

이제 "IP 주소"탭을 선택하고 마지막 항목 "IP 전체"로 이동하십시오.

"TCP 포트"1433을 입력하십시오.

이제 "SQL Server .Name"을 다시 시작하십시오 . "services.msc"사용 (winKey + r)

작동합니다 ...


이것을 시도하지만, 어떤 이유로 든 마우스 오른쪽 버튼을 클릭하고 windows10의 "TCP / IP"에서 "속성"을 선택하면 대화 상자가 표시되지 않습니다. 트 리뷰에서 일반적으로 다른 노드는 팝업 대화 상자를 잘 표시합니다. 누구 든지이 문제와 그것을 극복하기위한 아이디어가 있습니까?
Ryan Betker-healthNCode

3
SQL Server 2014에서 (localdb) \ v11.0 대신 (localdb) \ mssqllocaldb를 사용하십시오
Shalva Avanashvili

67
저의 크레딧을주지 않고 답변으로 내 의견 (2015 년 2 월 24 일-게시물 7 개월 전에 게시 됨)을 붙여 넣었 습니다. : P
ani627

2
이것은 효과가 있었다. SQL Server 2016에 연결할 수 없었습니다. 이러한 변경 사항을 적용하면 제대로 작동합니다! 감사.
Ankur

1
그것은 나를 위해 작동합니다. 구성 관리자에서 TCP / IP 및 명명 된 파이프를 활성화 한 후 "service.msc"에서 서비스를 시작해야했습니다.
Alif Noushad

100

스크린 샷이 포함 된 답변으로 심하게 올라간 댓글 을 추가 합니다.

나는 이것에 많은 시간을 보냈습니다. 마침내 나를 위해 일한 것은 다음과 같습니다.

1) Sql Server 구성 관리자 -> SQL Server 네트워크 구성 -> <(INSTANCE)> -> TCP / IP에 대한 프로토콜을 엽니 다 (두 번 클릭).

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

2)-> IP 주소 (탭 )를 선택하십시오 .

3) 마지막 항목 IP All로 이동하여 TCP 포트 1433을 언급하십시오 .

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

4)를 누르고 services.msc를Win+R 입력하십시오 .

5) 이제 SQL Server <(INSTANCE)>를 다시 시작하십시오 .

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

그 후 문제가 해결되었습니다!



나를 위해
일한

TCP를 활성화 한 후 SQL Server 2012에서 나를 위해 TCP ALL에 포트 번호 1433을 추가하고 서비스를 다시 시작했습니다!
Chirag Khatsuriya

나를 위해 추가적으로 방화벽에서 TCP 1433 UDP 1434 를 허용해야했습니다
MarkusEgle

83

서비스 를 열고 SQL Server (Sqlexpress) 서비스를 실행 하여 문제를 해결하고 있습니다 .

서비스 이미지


3
SQL Server Windows 서비스가 수동 시작 유형으로 설정된 위치를 보았으므로 재부팅시 다시 시작되지 않았습니다. 자동으로 설정해야합니다.
robertburke

2
이것은 내가 한 일이며 내 상태는 실행 중이며 StartupType은 자동이지만 여전히 문제에 직면했습니다. 따라서 실행 창 유형의 서비스를 사용한 services.msc다음 컨텍스트 메뉴에 대해 SQL Server (SQL EXPRESS)를 마우스 오른쪽 버튼으로 클릭하고 중지 및 시작 다시 서비스 하고 나를 위해 잘 작동 희망이 도움이됩니다.
shaijut

22

이 오류는 주로 SQL 서비스가 중지되었을 때 발생했습니다. 서비스를 다시 시작해야합니다.이 창으로 이동하려면 다음과 같이 서비스를 검색해야합니다. 여기에 이미지 설명을 입력하십시오

그런 다음 SQLSERVER (MSSQLSERVER)를 검색하고 서비스를 다시 시작하십시오.

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

이것이 효과가 있기를 바랍니다.


18

보도 window + R (Run window Open)및 실행 창 유형에서 "services.msc"내 경우에는 인스턴스 이름과 새로운 서비스 개방 찾기 SQL 서버는 그건 SQL SERVER(SQLEXPRESS)다음이 서비스를 시작하고 그것은 또한 당신이 내게 희망 그 작품에 대한 작업을 다시 시도하십시오.여기에 이미지 설명을 입력하십시오


답은 이전에 제공되었습니다. 아무 이유도 다시 게시하지
마십시오

8
친구는 같은 문제에 직면하고 있지만 나는 뜨거운 열린 서비스 창을 모른다 다음 나는 방법을 발견하고 사람들과 공유를 생각
Hafiz Asad

감사합니다, @HafizAsad. 당신의 대답은 저에게 효과적입니다.
Adnan Ahmad

@AdnanAhmad 환영합니다. 감사합니다.
Hafiz Asad


13

다른 PC에서 WinForms 프로젝트 (SQL Server 데이터베이스 작업 및 PC에서 완벽하게 작동하는 작업 포함)를 실행하려고 할 때도 같은 오류가 발생했습니다. 내 PC의 Windows 방화벽에 문제가있었습니다. 두 가지 규칙을 추가하여이 문제를 해결했습니다. 다음은 Windows 방화벽을 통해 SQL Server를 허용하는 전체 절차입니다.

  1. "실행"을 열고 입력 services.msc
  2. SQL Server (인스턴스 이름) 및 SQL Server Browser에 대한 서비스를 찾으십시오. 한 번에 하나씩 마우스 오른쪽 버튼을 클릭하고 "속성"을 선택한 다음 exe 파일의 경로를 복사하십시오.
  3. 그런 다음을 열고 firewall.cpl응용 프로그램 허용 또는 규칙 추가를 클릭하고 이전에 복사 한 경로를 추가하고 (수행해야하는 절차가 있음) 도메인 및 개인을 확인하고 공개를 선택 취소하십시오.

다음 절차를 볼 수있는 YouTube 링크입니다. Windows 방화벽을 통해 SQL Server 허용


나를 위해 완벽하게 작동합니다. 중요 : 방화벽에 브라우저와 서버를 추가하십시오! +1
BendEg

sqlservr.exe 파일을 찾는 데 어려움을 겪었습니다.이 파일을 찾는 데 트릭이있었습니다.
Stan

11

위의 해결책 중 아무것도 작동하지 않으면 (아무 것도 효과가 없음) 컴퓨터를 다시 시작하면 SQL 서버 (localhost)에 연결할 수 있습니다.


이것이 작동하는 이유는 방금 Sql Server를 설치하고 설치에서 지시 한대로 컴퓨터를 다시 시작하지 않았기 때문입니다. 따라서 그렇게하면 서비스가 생성되고 필요한 모든 구성이 누락됩니다.
Sterling Diaz

10

여기에 언급 된 모든 작업을 수행 한 후 :
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a- connection-to-sql-server-microsoft-sql-server-error / 여전히 작동하지 않습니다.

단계는 나를 위해 일했다 :

Start > Run > cmd > sqlcmd -L

서버 이름을 묻는 메시지가 나타납니다. 이 서버 이름이 SQL Management Studio의 서버에 연결 상자에 연결하려는 이름과 동일한 지 확인하십시오.

나는 MSSQLSERVER이 서버 이름을 사용 하는 대신 계속 사용 하는 바보 같은 실수를 저질렀습니다 .

이것이 나처럼 바보 같은 실수를하는 사람들에게 도움이되기를 바랍니다.

감사.


7

SQL Server 2016 및 Window 10을 사용하고 있습니다.

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

첫 번째는 SQL Server에 대한 원격 연결을 허용하는 것입니다. 내가 한 것은 시작 메뉴에서 sqlservermanager13.msc 를 입력 하여 SQL Server 구성 관리자를 여는 것입니다. TCP / IP 상태가 사용 가능한지 확인하십시오. 여기에 이미지 설명을 입력하십시오

TCP / IP 프로토콜 이름을 두 번 클릭하여 TCP 포트 번호를 확인하십시오. 일반적으로 기본적으로 1433입니다.

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

다음 절차는 고급 보안이 포함 된 Windows 방화벽 MMC (Microsoft Management Console) 스냅인을 사용하여 Windows 방화벽을 구성합니다. 고급 보안 기능을 가진 Windows 방화벽은 현재 프로필 만 구성합니다.

TCP 액세스를 위해 Windows 방화벽에서 포트를 열려면

  1. 시작 메뉴에서 실행을 클릭하고 WF.msc를 입력 한 다음 확인을 클릭합니다.
  2. 고급 보안이 설정된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭 한 다음 작업 창에서 새 규칙을 클릭합니다.
  3. 규칙 유형 대화 상자에서 포트를 선택한 후 다음을 클릭하십시오.
  4. 프로토콜 및 포트 대화 상자에서 TCP를 선택하십시오. 특정 로컬 포트를 선택한 다음 기본 인스턴스의 경우 1433과 같은 데이터베이스 엔진 인스턴스의 포트 번호를 입력하십시오. 다음을 클릭하십시오.
  5. 작업 대화 상자에서 연결 허용을 선택하고 다음을 클릭하십시오.
  6. 프로필 대화 상자에서 데이터베이스 엔진에 연결하려는 경우 컴퓨터 연결 환경을 설명하는 프로필을 선택한 후 다음을 클릭하십시오.
  7. 이름 대화 상자에서이 규칙의 이름과 설명을 입력 한 다음 마침을 클릭합니다.

구성해야 할 또 다른 것.

동적 포트를 사용할 때 SQL Server에 대한 액세스를 열려면

  1. 시작 메뉴에서 실행을 클릭하고 WF.msc를 입력 한 다음 확인을 클릭합니다.
  2. 고급 보안이 설정된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭 한 다음 작업 창에서 새 규칙을 클릭합니다.
  3. 규칙 유형 대화 상자에서 프로그램을 선택한 후 다음을 클릭하십시오.
  4. 프로그램 대화 상자에서이 프로그램 경로를 선택하십시오. 찾아보기를 클릭하고 방화벽을 통해 액세스하려는 SQL Server 인스턴스로 이동 한 다음 열기를 클릭하십시오. 기본적으로 SQL Server는 C : \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe에 있습니다. 다음을 클릭하십시오.
  5. 작업 대화 상자에서 연결 허용을 선택하고 다음을 클릭하십시오.
  6. 프로파일 대화 상자에서 데이터베이스 엔진에 연결하려는 경우 컴퓨터 연결 환경을 설명하는 프로파일을 선택한 후 다음을 클릭하십시오.
  7. 이름 대화 상자에서이 규칙의 이름과 설명을 입력 한 다음 마침을 클릭합니다.

Microsoft 문서를 살펴보십시오. 데이터베이스 엔진 액세스를위한 Windows 방화벽 구성


내 PC 윈도우 10 SQL 서버 인스턴스에 C에 있습니다 : \ 프로그램 Files \ Microsoft SQL 서버 \ MSSQL13.SQLEXPRESS \ MSSQL \ BINN \ Sqlservr.exe의
메이어 스피처

7

다음 방법을 테스트 할 수 있습니다.

    1. 프로젝트의 연결 문자열을 확인하십시오.
    1. 서비스로 이동하여 SQLServer 인스턴스를 다시 시작하십시오.
    1. 'SQLServer 구성 관리자'를여십시오.
    2. 왼쪽 패널에서 'SQLServer 네트워크 구성'을 선택하고 확장하십시오.
    3. 'MSSQLServer 용 프로토콜'을 선택하십시오.
    4. 오른쪽 패널 dbl에서 'TCP / IP'를 클릭하십시오.
    5. '프로토콜'탭에서 '사용 가능'을 '예'로 설정하십시오.
    6. 'IP 주소'탭에서 아래로 스크롤
    7. 'IPAll'에서 'TCP Port'를 1433으로 설정하십시오.
    1. '고급 보안 방화벽'열기
    2. 오른쪽 탭에서 '인바운드 규칙'을 선택하십시오.

가운데 탭에서 'local Port'가 1433이라는 레코드를 찾으십시오. 찾을 수 없으면 다음 레벨로 작성하십시오.

  • 시작 메뉴에서 실행을 클릭하고 'WF.msc'를 입력 한 다음 확인을 클릭합니다.
  • 왼쪽 패널에서 '고급 보안이 설정된 Windows 방화벽'을 클릭하십시오.
  • 오른쪽 패널에서 '인바운드 규칙'을 마우스 오른쪽 단추로 클릭 한 다음 '새 규칙'을 클릭하십시오.
  • 규칙 유형 대화 상자에서 '포트'를 선택한 후 다음을 클릭하십시오.
  • 프로토콜 및 포트 대화 상자에서 'TCP'를 선택하고 '특정 로컬 포트'를 선택한 다음 포트 번호 1433을 입력하고 다음을 클릭하십시오.
  • 작업 대화 상자에서 연결 허용을 선택하고 다음을 클릭하십시오.
  • '프로필'대화 상자에서 도메인, 개인 및 공개를 확인한 후 다음을 클릭하십시오.
  • '이름'대화 상자에서 'SQL 1433 포트'를 입력하고 설명에 대한 설명을 작성하십시오. 그런 다음 Finish를 클릭하십시오.
  1. 그런 다음 가운데 탭에서 찾은 항목 (인스턴스) 또는 생성 된 'SQL 1433 Port'이름의 항목을 두 번 클릭하십시오.
  2. 열린 대화 상자에서 '범위'탭을 선택하십시오 (SQL Server 속성)
  3. 로컬 PC에서 브라우저의 google.com으로 이동하여 'My IP'를 검색하십시오.
  4. 그런 다음 'IP'사본
  5. 원격 서버로 이동하여 '범위'탭의 'SQL 서버 속성'대화 상자의 '원격 IP 주소'에서 '이 IP 주소'옵션을 선택하고 '추가'버튼을 클릭하십시오.
  6. 열린 대화 상자 (IP 주소)에서 '이 IP 주소 또는 서브넷'옵션을 선택하고 'IP'를 붙여넣고 확인 버튼을 클릭하십시오.

7

이 솔루션 은 문제 network errorservice뒤 SQL 서버 를 모두 해결 합니다

나는 비슷한 질문에 대답했다. 다른 open Run type-> services.msc서비스 를 통계해야한다 .-> 서비스 sort by stopped가 중단 된 SQL 서비스를 보게 될 것이다.Right click and start

시작하려면 일반적인 LocalDb SqlExpress Sql Server 연결 오류를 일으킬 수있는 4 가지 문제가 SQL Network Interfaces, error: 50 - Local Database Runtime error occurred있습니다. 시작하기 전에 v11 또는 v12의 이름을 (localdb) \ mssqllocaldb로 변경해야합니다.


Troubleshooting Steps
  1. 당신은하지 않아도 서비스를 실행 이 cmd를 실행 , net start MSSQLSERVER또는net start MSSQL$ instancename
  2. 여기에 방화벽 포트가 구성 되어 있지 않습니다여기에 이미지 설명을 입력하십시오
  3. 설치 및 문제 / 손상 (아래 단계는 깔끔한 시작을 도와줍니다)
  4. 당신은하지 않았다 mssqllocaldb / SQLSERVER에 V11 또는 (12)의 이름을 변경

가장 간단한 방법은 다음과 같습니다. 사진과 단계를 첨부하여 도움을 요청했습니다.


Resolution Steps:

먼저 당신이 설치 한 예를 확인, 당신은이 작업을 수행 할 수 있습니다 레지스트리를 검사 하고 실행을 cmd에 의해

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" 이 단계가 실패하면 dcmd> Sqllocaldb.exe d "someDb" 옵션을 사용하여 삭제할 수 있습니다.
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png


5

저도 같은 문제가 발생하고 문제는 솔루션에 여러 프로젝트를 HADE (것이었다 WebDroid)에도 불구하고 Default project에서 선택이 끝난되었다 Package Manager Console가에서 연결 문자열을 사용하는 Droid프로젝트를 :

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

설정 한 후 Startup ProjectWebDefault ProjectPackage Manger Console나는 일에있어.


5

SQL Server 브라우저 서비스를 SQL Server 구성 관리자 로 실행해야합니다 . 설치하지 않으면 새로 만든 서비스를 검색 할 수 없습니다.


1
아직 거기에 없지만 나는 점점 가까워지고 있습니다. 이 작업을 수행 한 후에도 Visual Studio에서 연결을 끊었다가 다시 연결하면 여전히 동일한 오류가 발생하지만 적어도 VS2015 뒤에서 테이블을 만들 수 없으며 데이터베이스를 지금 실행하기 위해 이음새를 만듭니다. (ea, 그들 위에 어두운 십자가 아이콘 없음)
user3800527

1
명령 후, 로컬 시스템에서 서버 이름을
얻었습니다.

4

위의 솔루션은 사례의 90 %에서 작동하지만 여전히이 답변을 읽고 있다면 !!! 의도 한 것과 다른 서버에 연결하려고했습니다. 연결하려는 실제 서버와 다른 SQL 서버를 가리키는 구성 파일 때문일 수 있습니다.

적어도 나에게 일어났다.


1
나에게도 일어났다. 방화벽 진단을 시도하기 전에 확인해야합니다. 올바른 연결 문자열이 있었지만 솔루션에서 잘못된 프로젝트를 실행하고있었습니다.
VSO

4

Windows 7의 업무용 랩톱에서 Windows 10의 업무용 랩톱으로 옮겼습니다. Windows 7에서 SSMS2016을 성공적으로 사용했습니다.

SSMS2012 또는 SSMS2016을 사용하여 동일한 문제가 적용되었습니다. Windows 인증을 사용하는 10 개의 SQL 서버에 대한 액세스 권한은 여전히 ​​동일합니다. 다른 서버에서 이것을 테스트 할 수 있습니다. 그러나 10 대의 서버 중 2 대가 랩톱에서 연결되지 않습니다 . 둘 다 ms SQL Server 9이지만 다른 SQL Server 9 데이터베이스에 연결할 수 있습니다.

해결책은 방화벽 규칙추가하는 것이 었습니다 (고급 보안 Windows 방화벽 사용).

C : \ Program Files (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe와 같이 각 SSMS에 대해 들어오는 규칙을 만듭니다.

나는 네트워크 전문가가 아니므로 세부 사항을 포함시키지 않았지만 올바른 방향으로 당신을 가리킬 것입니다.


오류 메시지 (방화벽 사전 규칙) "SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 별 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 다음과 같이 구성되어 있는지 확인하십시오. 원격 연결 허용 (제공자 : SQL 네트워크 인터페이스, 오류 : 26-오류 서버 / 인스턴스 지정 오류) (. Net SqlClient 데이터 공급자) "


4

이 오류가 다양한 상황에서 발생할 수 있기 때문에 왜 그렇게 시끄럽고 시끄 럽습니까?

나는 여기의 모든 접근을했지만 여전히 빨려 있습니다. 따라서 아래쪽으로 탐색하기 전에 나와 같은 작업을 수행했는지 확인하십시오.

어쩌면 나는 즉시 상황을 해결할 수 없을 수도 있습니다. 없지만 방향을 생각하거나 u를 향한 생각을 할 수 있습니다 (마침내 아래로 미끄러지는 사람). 인스턴스 이름이 분명하고 위의 방법에 따라 원격 제어를 허용하도록 데이터베이스를 설정 한 후 실행중인 프로그램의 오류를 숙고하기 시작했습니다. 그 후 SQL 연결의 코드 스 니펫에 문제가 있다고 생각했습니다.

내 문제의 해결책 :

  • 내 SQL 연결 기능을 확인하십시오

  • 구성을 보려면 클릭

  • 새로운 연결

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

  • 귀하의 서버 이름을 선택하십시오

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

그것은 연결 과정에서 정확히 무슨 일이 일어나는지 숙고하는 데 도움이됩니다.


이것은 Entity Framework를 사용할 때 LocalDB 연결 문자열의 포트 번호를 제거해야한다는 것을 알았습니다.
ryanwebjackson

4

나는이 질문에 대한 다른 모든 대답을 시도했지만 일부는 아마도이 작업을 수행하는 데 일부 역할을하지는 않았지만 여전히 원격으로 DB에 연결할 수 없었습니다. Azure VM에서 SQL Server를 사용하고있었습니다.

결국 VM에 Azure 계정 프록시로 제어되는 끝 점이 있다는 것을 기억했기 때문에 Azure Portal로 이동하여 사용 가능한 끝점으로 1433을 추가했으며 SQL 인스턴스에 연결할 수있었습니다.

희망이 다른 모든 답변을 시도했지만 여전히 운이없는 사람에게 도움이되기를 바랍니다!


4

요약

로컬 앱과 원격 데이터베이스실행 하는 동안이 문제를 해결하려면 SQL Server 구성 관리자를 사용하여 원격 데이터베이스의 별칭을 추가하십시오.

세부

최근에 Windows 7에서 Windows 10 랩톱으로 전환 할 때이 문제가 발생했습니다. 원격 서버에서 Dev 데이터베이스에 액세스하는 로컬 개발 및 런타임 환경을 실행 중이었습니다. SQL Server 클라이언트 네트워크 유틸리티 (cliconfg.exe)를 통해 서버 별칭 설정을 통해 Dev 데이터베이스에 액세스합니다. 유틸리티의 64 비트와 32 비트 버전 모두에서 별칭이 올바르게 설정되었고 SSMS를 통해 새 랩톱에서 데이터베이스 서버에 액세스 할 수 있음을 확인한 후에도 OP의 OP (IP 주소가 아닌) 강좌).

원격 개발자 데이터베이스 서버에 대한 별칭을 추가하려면 SQL Server 구성 관리자를 사용해야했습니다. 일을 바로 고쳤습니다.

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


4

MS SQL Server 2014의 서비스 상태를 확인할 수 있습니다. Windows 7에서는 다음을 통해이를 수행 할 수 있습니다.

  1. 검색으로 이동하여 "SQL Server 2014 구성 관리자
  2. 그런 다음 왼쪽 메뉴에서 "SQL Server Service"를 클릭하십시오.
  3. SQL Server 서비스 상태가 중지되었거나 실행중인 경우 인스턴스 확인
  4. 중지 된 경우 상태를 실행 중으로 변경하고 SQL Server Management Studio 2014에 로그인하십시오.

3

서버를 IIS Express 에서 로컬 IIS 로 변경하려고 할 때 ( LocalDB 사용 중 ) 내 문제가 시작되었습니다 .

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

LocalDB를 사용하고 있었으며 (개발 목적으로) 로컬 IIS에서 IIS Express로 되돌릴 때 Visual Studio는 데이터 소스를 Data Source = (LocalDb) \ MSSQLLocalDB 에서 Data Source =. \ SQLEXPRESS로 전환했습니다.

잘못된 연결 문자열

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

올바른 연결 문자열

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

이것이 누군가를 도울 수 있기를 바랍니다.


또한 연결 문자열에서 \ 대신 /를 사용하는 바보 같은 실수를하지 마십시오.
앤드류 페이트

3

Teo Chuen Wei Bryan이 제안한대로 모든 것을 시도하는 것과 함께 연결 문자열에서 올바른 서버 / 인스턴스 이름을 참조하고 있는지 확인하십시오.

데이터베이스 서버 또는 web.config 파일에서 짧은 형식의 호스트 이름 / 인스턴스를 사용하는 경우 FQDN (정규화 된 도메인 이름) / 인스턴스

또한 SQL Server 클라이언트가없는 서버에서 연결을 테스트하려면

-> 텍스트 파일을 만들고 파일 확장자를 .udl로 변경하십시오.

-> 파일을 마우스 오른쪽 버튼으로 클릭하면 연결 탭이 나타납니다.

-> 서버 이름을 입력하고 데이터베이스 서버에 대한 연결을 테스트하기위한 정보를 로그온하십시오.

도움이 되었기를 바랍니다.


3

프로덕션 환경에서이 오류가 갑자기 발생하고 아무 것도 변경되지 않은 경우 아래 4 가지 항목을 순서대로 시도하여 수정되었는지 확인하십시오.

  1. SQL Server 서비스를 다시 시작하십시오.
  2. SQL 서버를 호출하는 서비스 (IIS 등)를 다시 시작하십시오. (SQL 서버에 대한 서비스 호출 시작 시간과 응답 오류가 발생하는 시간 사이의 시간이 매우 짧거나 (약 1-2 초) 문제가있을 수 있습니다.
  3. 서버를 다시 시작하십시오. sql 서버가 켜져 있습니다.
  4. 호출 서비스가있는 서버를 다시 시작하십시오.

3

Visual Studio에서이 오류가 발생했을 때

“SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 별 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (제공자 : 명명 된 파이프 공급자, 오류 : 40-SQL Server에 대한 연결을 열 수 없음)”

... 다음 C # 코드를 실행하는 동안 SQL Server 데이터를 가져와 그리드에 표시하려고했습니다. connect.Open ()이라고 표시된 줄에서 정확하게 중단이 발생했습니다.

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

SQL 쿼리가 매우 간단하고 올바른 연결 문자열이 있었고 데이터베이스 서버를 사용할 수 있었기 때문에 설명 할 수 없었습니다. SQL Management Studio에서 실제 SQL 쿼리를 수동으로 직접 실행하기로 결정했으며 제대로 실행되어 여러 레코드가 생성되었습니다. 그러나 쿼리 결과에서 한 가지 두드러진 점이 있습니다. Friends 테이블의 varchar (max) 유형 필드 내에 잘못 인코딩 된 HTML 텍스트가 있습니다 (특히 <!--"Narrative"열 데이터 내에 정렬 된 일부 인코딩 된 주석 기호 ). 의심스러운 데이터 행은 다음과 같습니다.

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

&lt;"<"문자를 나타내는 인코딩 된 HTML 기호 " "에 주목하십시오 . 어떻게 든 데이터베이스에 들어갔고 C # 코드를 사용하지 못했습니다! connect.Open () 줄에서 매번 실패했습니다! 데이터베이스 테이블 Friends에서 한 행의 데이터를 수동으로 편집하고 대신 디코딩 된 "<"문자를 입력하면 모든 것이 제대로 작동했습니다! 해당 행의 모습은 다음과 같습니다.

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

아래의 간단한 UPDATE 문을 사용하여 잘못된 행 하나를 편집했습니다. 그러나 인코딩 된 HTML에 여러 개의 잘못된 행이있는 경우 REPLACE 함수를 사용하는보다 정교한 UPDATE 문이 필요할 수 있습니다.

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

따라서 이야기의 교훈은 (적어도 나의 경우에는) 데이터베이스에 저장하기 전에 HTML 내용을 삭제하면 처음에는이 cryptic SQL Server 오류가 발생하지 않습니다! (자세한 정보가 필요한 경우 HTML 콘텐츠를 올바르게 위생 처리 / 디코딩하는 것은 별도의 StackOverflow 검색이 필요한 또 다른 토론의 주제입니다!)



3

Web.config의 Xml 태그 정렬이 중요합니다

먼저

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

3

내 상황에서 MSSQLSERVER 서비스에 문제가있어서 서비스를 다시 시작하고 문제가 해결되었습니다.

따라서 Windows 키로 Services 앱으로 이동하여 "Services"를 검색 한 다음 Microsoft SQL Server 의 Sql 인스턴스는 일반적으로 "SQL Server (MSSQLSERVER)" 를 찾는 것이 좋습니다 . 서비스를 마우스 오른쪽 버튼으로 클릭하고 시작을 클릭하십시오. 비활성화 된 경우 다시 시작을 클릭하십시오.


2

이 오류는 SQL Server 인스턴스가 stopped .

모든 프로그램> SQL Server> 구성 도구> SQL 서버 구성 관리자로 이동하십시오.

그런 다음 SQL SERVER SERVICES를 클릭하면 인스턴스 목록이 표시되고 해당 인스턴스를 선택하고 상단 툴바에서 재생 아이콘을 클릭하면 도움이되기를 바랍니다.

이 답변은 매우 늦습니다 (그러나 결코 늦지 않는 것보다 낫습니다)


2

Entity Framework를 시작 프로젝트로 사용하는 프로젝트를 설정 한 다음 "update-database"명령을 실행하여이 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.