서버에 연결할 수 없음 - 네트워크 관련 오류 또는 인스턴스별 오류
SQL Server에 연결하려고 하면 다음 오류가 발생합니다.
SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스별 오류가 발생했습니다.서버를 찾을 수 없거나 서버에 액세스할 수 없습니다.인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인합니다.(공급자: 명명된 파이프 공급자, 오류: 40 - SQL Server에 대한 연결을 열 수 없습니다.)
이 오류는 Visual Studio 2010에서 데이터베이스를 그리드 뷰로 구성하려고 하면 발생합니다.이 에러를 디버깅하는 방법을 모르겠습니다.
이 오류를 디버깅하려면 어떻게 해야 합니까?에러 메세지에 기재되어 있는 것 외에, 여기서 실제로 무슨 일이 일어나고 있는지를 판단하려면 , 어떤 순서를 실행할 필요가 있습니까.
다음 기술이 도움이 되었습니다.
-
데이터베이스 엔진이 원격 연결을 허용하도록 구성되어 있는지 확인합니다.
- [ Start ] > [ All Programs ]> [ SQL Server 2005 ]> [ Configuration Tools ]> [ SQL Server Surface Area Configuration ]
- 서비스 및 연결을 위한 표면적 구성 클릭
- 문제가 있는 인스턴스를 선택합니다.> [ Database Engine ]> [ Remote Connections ]
- 로컬 및 원격 연결 사용
- 인스턴스 재시작
-
사용 중인 SQL Server 인스턴스 및 포트에 대해 방화벽에서 예외를 생성해야 할 수 있습니다.
- [ Start ] > [ Run ]> [ Firewall . cpl ]
- 예외 탭을 클릭합니다.
- 으로 sqlservr.exe에 ).
C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin
패스를 는 「」입니다).1433
) - 연결 문자열도 확인합니다.
-
SQL Server 서비스가 정상적으로 가동되고 있는지 확인합니다.
- [ All Programs ]> [ Microsoft SQL Server 2008 ]> [ Configuration Tools ]> [ SQL Server Configuration Manager ]> [ SQL Server Services ]의 순서로 선택합니다.
- SQL Server 서비스 상태가 실행 중인지 확인합니다.
또, 리모트 서버가 같은 네트워크에 있는 것을 확인합니다.달려.
sqlcmd -L
서버가 네트워크 목록에 포함되어 있는지 확인합니다. -
SQL Server 구성에서 TCP/IP 사용
네트워크를 통해 두 개 이상의 SQL Server가 연결되어 있는 경우 TCP/IP를 사용하여 모든 통신을 수행합니다.SQL Server 설치의 기본 포트는 1433입니다.이 포트는 SQL Server Configuration Manager를 통해 변경할 수 있습니다.SQL Server를 연결하려면 TCP/IP를 사용하도록 설정해야 합니다.
- [ All Programs ]> [ Microsoft SQL Server 2008 ]> [ Configuration Tools ]> [ SQL Server Configuration Manager ]> [ TCP / IP ]를 선택합니다.
- TCP/IP 우클릭>> [ Enable ]을 클릭합니다.
모든 변경 내용을 적용하려면 SQL Server 서비스를 다시 시작해야 합니다.마우스 오른쪽 버튼을 클릭하고 메뉴 속성으로 이동하여 SQL Server의 기본 포트를 변경할 수 있는 위치를 선택합니다.
솔루션을 준비했습니다.
"SQL Server 구성 관리자"를 엽니다.
이제 "SQL Server 네트워크 구성"을 클릭하고 "이름 프로토콜"을 클릭합니다.
"TCP/IP"를 마우스 오른쪽 버튼으로 클릭합니다(활성화되었는지 확인).
이제 "IP 주소" 탭을 선택하고 마지막 항목 "IP All"로 이동합니다.
"TCP Port" 1433을 입력합니다.
이제 services.msc(winKey + r)를 사용하여 "SQL Server .Name"을 재시작합니다.
작동 가능...
스크린샷을 첨부한 답변으로 대폭 업그레이드된 코멘트를 추가합니다.
저는 이 일에 많은 시간을 투자했습니다.마지막으로 효과가 있었던 것은 다음과 같습니다.
1) SQL Server Configuration Manager --> SQL Server Network Configuration --> Protocols for <(INSTANCE)> --> TCP/IP 를 엽니다(두 번 클릭).
2) [ -- > IP Addresses ( Tab ) ]를 선택합니다.
3) 마지막 엔트리의 [IP All]에 접속하여 TCP Port 1433을 언급합니다.
4) 를 눌러 services.msc 라고 입력합니다.
5) SQL Server <(INSTANCE)>를 재기동합니다.
그 후, 문제가 해결되었습니다!
이 문제를 해결하려면 서비스를 열고 SQL Server(Sqlexpress) 서비스를 실행합니다.
이 오류는 주로 SQL 서비스가 중지되었을 때 발생합니다.서비스를 재시작해야 합니다.이 창으로 이동하려면 다음과 같이 서비스를 검색해야 합니다.
다음으로 SQLSERVER(MSSQLSERVER)를 검색하여 서비스를 재시작합니다.
이게 먹히길 바라.
Express Edition을 사용하는 경우:
때 더해야 요.\SQLEXPRESS
server name ( 후)
★★MY-SERVER\SQLEXPRESS
를 누릅니다.window + R (Run window Open)
에 " " " 라고 입력합니다."services.msc"
SERVER name을 SERVER를 SQL SERVER(SQLEXPRESS)
그럼 이 서비스를 시작하고 다시 한 번 시도해 보세요.당신에게도 효과가 있기를 바랍니다.
다른 PC에서 WinForms 프로젝트(SQL Server 데이터베이스 사용 및 PC에서 완벽하게 동작하는 것 포함)를 실행하려고 할 때도 같은 오류가 발생했습니다.PC의 Windows 방화벽에서 문제가 발생.저는 두 가지 규칙을 추가하여 이 문제를 해결했습니다.다음은 SQL Server가 Windows 방화벽을 통과할 수 있도록 하는 전체 절차입니다.
- 실행 '실행'을 합니다.
services.msc
- SQL Server(인스턴스 이름) 및 SQL Server Browser용 서비스를 찾습니다.한 번에 하나씩 마우스 오른쪽 버튼을 클릭하고 "속성"을 선택한 후 경로를 exe 파일에 복사합니다.
- [ ] 를 .
firewall.cpl
[ rule 를경로 를하고 [ and Private를 끄고 [or][ allow an application or add rule ]체크박스를 해제합니다(개인).
다음 절차를 볼 수 있는 YouTube 링크입니다.윈도우즈 방화벽을 통해 SQL Server 허용
나도 같은 문제에 부딪혔어. 내 경우에는 이런 식으로 문제를 해결했어.
순서 1: 시작 메뉴에서 SQL Server 구성 매니저로 이동
순서 2: TCP/IP를 유효하게 하다
순서 3: TCP/IP를 더블 클릭하여 [IP Address](IP 주소)의 마지막 엔트리의 [IP ALL](IP ALL)로 이동하여 TCP 포트 1433을 입력하고 적용.
스텝 4 : 다음으로 win+r을 누르고 services.msc를 눌러 서비스를 열고 아래로 스크롤한 후 SQL Server(MSSQLSERVER)를 오른쪽 클릭하여 재시작을 선택합니다.
그것으로 나의 문제는 해결되었다.위의 절차를 모두 실행해도 문제가 해결되지 않는 경우에도 PC를 재부팅하기만 하면 정상적으로 동작합니다.
이 솔루션은 두 가지 문제를 모두 해결합니다. Network Error
&service
의 배후에 SQL Server의
. 부분은 해야 합니다. 하다open Run type-> services.msc
- services -> 정지된 SQL 서비스가 많이 표시됩니다.Right click and start
시작하기 전에 일반적인 LocalDb SqlExpress SQL Server 연결 오류를 일으킬 수 있는 4가지 문제가 있습니다. SQL Network Interfaces, error: 50 - Local Database Runtime error occurred
시작하기 전에 v11 또는 v12의 이름을 (localdb)\sysqllocaldb로 변경해야 합니다.
Troubleshooting Steps
- 이 cmd를 실행하는 서비스가 없습니다.
net start MSSQLSERVER
★★★★★★★★★★★★★★★★★」net start MSSQL$ instancename
- 여기에 방화벽 포트가 구성되어 있지 않습니다.
- 설치 및 문제/파손(다음 절차는 깔끔하게 시작하는데 도움이 됩니다)
- V11 또는 12의 이름을 mssqllocaldb/SqlServer로 바꾸지 않았습니다.
가장 간단한 방법은 다음과 같습니다.도움말의 사진과 스텝을 첨부했습니다.
Resolution Steps:
먼저 설치한 인스턴스를 확인합니다.레지스트리를 확인하고 cmd를 실행하여 이 작업을 수행할 수 있습니다.
cmd> Sqllocaldb.exe i
cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"
실패했을 는, 「삭제」옵션을 사용해 할 수 .d
d "cmd> Sqlocaldb.exe d "someDb"cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"
MSSql Server
니아면단단순단!
를 CMD를 .
window + R
services.msc 라고 합니다.서비스를 찾습니다. 이름을 가진 SQL Server를 선택합니다.
ReStart
시도하세요.
위의 솔루션 중 어느 것도 동작하지 않는 경우(아무것도 동작하지 않는 경우), 컴퓨터를 재기동하기만 하면 SQL 서버(로컬 호스트)에 접속할 수 있습니다.
「 」 、 「 」 、 「 」 。
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 관리 스튜디오의 CONNECT TO SERVER 박스에서 연결하려는 서버 이름과 동일한지 확인하십시오.
하다 같은 실수를 요.MSSQLSERVER
을 사용하다
이것이 나처럼 어리석은 실수를 저지르는 사람들에게 도움이 되기를 바란다.
감사해요.
SQL Server 2016과 Window 10을 사용하고 있습니다.
첫 번째는 SQL Server에 대한 원격 연결을 허용하는 것입니다.시작 메뉴에 sqlservermanager13.msc를 입력하여 SQL Server Configuration Manager를 엽니다.TCP/IP 상태가 유효하게 되어 있는 것을 확인합니다.
TCP/IP 프로토콜 이름을 두 번 클릭하여 TCP 포트 번호를 확인합니다.통상 디폴트로는 1433 입니다.
다음 절차에서는 MMC(Advanced Security Microsoft Management Console) 스냅인을 사용하여 Windows 방화벽을 구성합니다.고급 보안이 설정된 Windows 방화벽은 현재 프로파일만 구성합니다.
TCP 액세스를 위해 윈도우즈 방화벽에서 포트를 열려면 다음과 같이 하십시오.
- 시작 메뉴에서 실행을 누르고 WF.msc를 입력한 다음 확인을 누르십시오.
- 고급 보안이 설정된 윈도우즈 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 버튼으로 누른 다음 작업 창에서 새 규칙을 누르십시오.
- 규칙 유형 대화 상자에서 포트를 선택하고 다음을 누르십시오.
- 프로토콜 및 포트 대화상자에서 TCP를 선택합니다.특정 로컬 포트를 선택한 다음 데이터베이스 엔진 인스턴스의 포트 번호(기본 인스턴스의 경우 1433 등)를 입력합니다.[Next] 를 클릭합니다.
- 작업 대화 상자에서 연결 허용을 선택하고 다음을 누르십시오.
- 프로필 대화 상자에서 데이터베이스 엔진에 연결할 때 시스템 연결 환경을 설명하는 프로필을 선택하고 다음을 누르십시오.
- 이름 대화 상자에서 이 규칙의 이름과 설명을 입력한 다음 마침을 누르십시오.
설정하는 또 다른 것.
동적 포트를 사용할 때 SQL 서버에 대한 액세스를 열려면 다음과 같이 하십시오.
- 시작 메뉴에서 실행을 누르고 WF.msc를 입력한 다음 확인을 누르십시오.
- 고급 보안이 설정된 윈도우즈 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 버튼으로 누른 다음 작업 창에서 새 규칙을 누르십시오.
- 규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 누르십시오.
- 프로그램 대화 상자에서 이 프로그램 경로를 선택합니다.찾아보기를 누르고 방화벽을 통해 액세스할 SQL 서버 인스턴스로 이동한 다음 열기를 누르십시오.기본적으로는 SQL Server는 C:\Program Files\Microsoft SQL Server\에 있습니다.MSQL13.MSQLSERVER\MSSQL\Binn\Sqlservr.exe.[Next] 를 클릭합니다.
- 작업 대화 상자에서 연결 허용을 선택하고 다음을 누르십시오.
- 프로필 대화 상자에서 데이터베이스 엔진에 연결할 때 시스템 연결 환경을 설명하는 프로필을 선택하고 다음을 누르십시오.
- 이름 대화 상자에서 이 규칙의 이름과 설명을 입력한 다음 마침을 누르십시오.
Microsoft 통합 데이터베이스 엔진 액세스를 위한 Windows 방화벽 구성
다음 방법을 테스트할 수 있습니다.
a
- 프로젝트의 연결 문자열을 확인합니다.
b
- 서비스로 이동하여 SQL Server 인스턴스를 재시작합니다.
c
- 'SQLServer 구성 관리자'를 엽니다.
- 왼쪽 패널에서 'SQ'를 선택합니다.LServer 네트워크 구성' 및 확장
- 'MSSQLServer용 프로토콜'을 선택하십시오.
- 오른쪽 패널에서 'TCP/IP'를 클릭합니다.
- '프로토콜' 탭에서 '사용'을 '예'로 설정합니다.
- 'IP 주소' 탭에서 아래로 스크롤합니다.
- 'IPALL'에서 'TCP 포트'를 1433으로 설정합니다.
- d
- '고급 보안 방화벽'을 엽니다.
- 오른쪽 탭에서 '인바운드 규칙'을 선택합니다.
가운데 탭에서 '로컬 포트'가 1433인 레코드를 찾습니다. 찾을 수 없는 경우 다음 수준으로 만들어 보십시오.
- 시작 메뉴에서 실행을 클릭하고 'WF.msc'를 입력한 다음 확인을 클릭합니다.
- 왼쪽 패널에서 '고급 보안이 설정된 Windows 방화벽'을 클릭합니다.
- 오른쪽 패널에서 '인바운드 규칙'을 마우스 오른쪽 버튼으로 누른 다음 '새 규칙'을 누르십시오.
- 규칙 유형 대화 상자에서 '포트'를 선택하고 다음을 누르십시오.
- 프로토콜 및 포트 대화상자에서 'TCP'를 선택하고 '특정 로컬 포트'를 선택한 후 포트 번호 1433을 입력하고 다음을 클릭합니다.
- 작업 대화 상자에서 연결 허용을 선택하고 다음을 누르십시오.
- '프로파일' 대화 상자에서 도메인, 개인 및 공용을 선택하고 다음을 클릭합니다.
- '이름' 대화 상자에 'SQL 1433 포트'를 입력하고 설명을 입력합니다.다음으로 [Finish]을 클릭합니다.
- 그런 다음 중앙 탭에서 사용자가 찾은 항목(Instance) 또는 'SQL 1433 Port' 이름의 만든 항목을 두 번 클릭합니다.
- 열린 대화 상자(SQL Server 속성)에서 '범위' 탭을 선택합니다.
- 로컬 PC에서 브라우저의 google.com에 접속하여 '내 IP'를 검색합니다.
- 복사해 주세요.IP'
- 원격 서버로 이동하여 '범위' 탭의 'SQL Server 속성' 대화 상자의 '원격 IP 주소'에서 '이 IP 주소' 옵션을 선택하고 '추가' 버튼을 클릭합니다.
- 열려 있는 대화 상자(IP 주소)에서 '이 IP 주소 또는 서브넷' 옵션을 선택하고 'IP'를 붙여넣고 OK 버튼을 클릭합니다.
SQL Server Configuration Manager에서 SQL Server Browser 서비스를 실행해야 합니다.이 기능이 없으면 새로 생성된 서비스를 검색할 수 없습니다.
이 질문에 대한 다른 답변을 모두 시도해 보았지만, 이 문제를 해결하는 데 도움이 되지 않는 답변도 몇 가지 있었습니다만, 여전히 DB에 원격으로 접속할 수 없었습니다.Azure VM에서 SQL Server를 사용하고 있었습니다.
결국 VM에 Azure 계정 프록시에 의해 제어되는 엔드포인트가 있다는 것을 알고 Azure Portal로 이동하여 사용 가능한 엔드포인트로 1433을 추가하면 SQL 인스턴스에 연결할 수 있었습니다.
이것이 다른 모든 답을 시도해봤지만 여전히 운이 없는 사람에게 도움이 되기를 바랍니다!
를 겪고 , 에 몇 가지 이었습니다.Web
★★★★★★★★★★★★★★★★★」Droid
) even 、「 」를 참조해 주세요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 Project
로로 합니다.Web
및Default Project
Package Manger Console
을 사용하다
MS SQL Server 2014의 서비스 상태를 확인하실 수 있습니다.Windows 7 에서는, 다음의 조작을 실행할 수 있습니다.
- 검색으로 이동하여 "SQL Server 2014 Configuration Manager"를 입력합니다.
- 왼쪽 메뉴에서 "SQL Server 서비스"를 클릭합니다.
- SQL Server 서비스 상태가 중지 또는 실행 중인 경우 인스턴스를 확인합니다.
- 중지된 경우 상태를 실행 중으로 변경하고 SQL Server Management Studio 2014에 로그인하십시오.
SQL Server(MSSQLSERVER) 서비스를 다시 시작하십시오.
상기의 솔루션은 90%의 케이스에서 유효합니다만, 아직 이 답변을 읽고 있다면!!의도한 것과는 다른 서버에 접속하려고 하고 있을 가능성이 있습니다.연결하려고 하는 실제 서버와는 다른 SQL 서버를 가리키는 구성 파일이 원인일 수 있습니다.
적어도 나한테는 일어난 일이야.
Visual Studio에서 이 오류가 발생했을 때
"SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스별 오류가 발생했습니다.서버를 찾을 수 없거나 서버에 액세스할 수 없습니다.인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인합니다.(프로바이더: 명명된 파이프 공급자, 오류: 40 - SQL Server에 대한 연결을 열 수 없습니다.)
다음 C# 코드를 실행하는 동안 SQL Server 데이터를 가져와 그리드에 표시하려고 했습니다.연결이 되어 있는 회선에서 정확히 끊어졌습니다.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로 이동합니다.실제 SQL 쿼리는 정상적으로 실행되어 여러 레코드가 생성되었습니다., 쿼리 결과에서 에 띄는 은 [) 내에 가 있는 으로는 [Friends]의 [Friends]의 [varchar(max)]의 부호화된 입니다).<!--
'무엇보다'의심스러운 데이터 행은 다음과 같습니다.
Name Birthdate Narrative
==== ========= ==============
Fred 21-Oct-79 <!--HTML Comment -->Once upon a time...
기호 「HTML」에 해 주세요.<
"<"라고 합니다.어떻게 해서든 데이터베이스에 들어갔는데, 내 C#코드로 수신할 수 없었어!접속 직후에 매번 실패했어요.픈 ( ) !으로 편집하고 "<"것이 동작했습니다!데이터베이스 테이블 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 '<%'
따라서 이 이야기의 교훈은 (최소한 내 경우) HTML 콘텐츠를 데이터베이스에 저장하기 전에 삭제하면 처음부터 이 암호화 SQL Server 오류가 발생하지 않습니다. (어, HTML 콘텐츠를 적절히 삭제/복호화하는 것은 추가 정보가 필요한 경우 별도의 StackOverflow 검색에 가치가 있는 다른 토론의 주제입니다.)
다양한 상황에서 발생할 수 있기 때문에 이 에러가 이렇게 지루하고 시끄러운 이유는 무엇입니까?
여기 위에 있는 모든 걸 다 해봤는데, 아직도 빨려들어가요.따라서 아래를 보기 전에 나와 동일한 작업을 수행했는지 확인하십시오.
당신의 상황을 바로잡을 수 없을지도 모르지만, 당신에게 방향이나 생각을 알려줄 수 있습니다(마침내 미끄러져 내려오는 사람).인스턴스 이름이 확실하게 맞는지 확인하고 위의 방법에 따라 원격 제어를 허용하도록 데이터베이스를 설정한 후 실행 중인 프로그램의 오류를 곰곰이 생각하기 시작했습니다.그 후 SQL 접속 코드 조각에 문제가 있는 것으로 의심되었습니다.
문제 해결 방법:
- sqlconnection 함수 확인
- 구성을 보려면 클릭하십시오.
- 접속을 새로 만들기
- 서버 이름 선택
연결 과정에서 정확히 어떤 일이 일어나는지 곰곰이 생각해보는 것이 나에게 효과가 있다.내 생각이 너의 실수를 없애주길 바란다.
한 번 더 .,
번호( 「 」( 「 」)와 ),1433
접속 문자열의 마지막까지)를 참조해 주세요.
요약
로컬 앱과 원격 데이터베이스를 실행하는 동안 발생하는 이 문제를 해결하려면 SQL Server 구성 관리자를 사용하여 원격 데이터베이스의 별칭을 추가하십시오.
세부 사항
최근 Windows 7에서 Windows 10 노트북으로 이행할 때 이 문제가 발생했습니다.리모트 서버의 Dev 데이터베이스에 액세스하기 위해 로컬 개발 및 런타임 환경을 실행하고 있었습니다.SQL Server Client Network Utility(cliconfg.exe)를 통해 서버 에일리어스 설정을 통해 Dev 데이터베이스에 액세스합니다.이 유틸리티의 64비트 버전과 32비트 버전 모두에서 에일리어스가 올바르게 설정되어 있고 SSMS를 통해 새로운 노트북에서 데이터베이스 서버에 액세스할 수 있는 것을 확인해도 OP에서 볼 수 있는 오류(물론 OP의 IP 주소가 아님)가 여전히 표시됩니다.
SQL Server Configuration Manager를 사용하여 원격 Dev 데이터베이스 서버의 별칭을 추가해야 했습니다.일을 바로 해결했어요.
Windows 7 의 업무용 노트북에서 Windows 10 의 업무용 노트북으로 이행했습니다.저는 Windows 7에서 SSMS2016을 성공적으로 사용하고 있었습니다.
SSMS2012 또는 SSMS2016에서도 같은 문제가 발생하였습니다.윈도 인증을 사용한10개의 SQL Server에 대한 접근은 그대로였습니다.다른 서버에서 테스트할 수 있습니다.그러나 10대의 서버 중 2대가 노트북에서 접속되지 않았습니다.둘 다 ms SQL server 9였지만 다른 SQL server 9 데이터베이스에 접속할 수 있었습니다.
해결책은 방화벽 규칙을 추가하는 것이었습니다(고급 보안이 적용된 Windows 방화벽 사용).
각 SSMS에 대해 C:\Program Files(x86)\Microsoft SQL Server\130\와 같은 수신 규칙을 만듭니다.도구\Binn\ManagementStudio\Sms.exe
저는 네트워크 전문가가 아니기 때문에 자세한 내용은 기재하지 않았습니다만, 이것이 올바른 방향을 제시해 주었으면 합니다.
오류 메시지(방화벽 규칙 이전) "SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스별 오류가 발생했습니다.서버를 찾을 수 없거나 서버에 액세스할 수 없습니다.인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인합니다.(프로바이더: SQL 네트워크인터페이스, 오류: 26 - 서버/인스턴스 지정 오류) (.Net SqlClient 데이터 프로바이더)"
Visual Studio에서 디버깅하는 동안 이 문제가 발생하면 프로젝트 빌드 경로가 로컬 드라이브를 가리키는지 확인하거나 다음 단계에 따라 네트워크 폴더에 권한을 부여하십시오.
LocalDB 사용 중 서버를 IIS Express에서 로컬 IIS로 변경하려고 했을 때 문제가 시작되었습니다.
LocalDB(개발 목적)를 사용하고 있었는데 Local IIS에서 IIS Express로 되돌리려고 했을 때 Visual Studio가 데이터 소스를 Data Source=(LocalDb)에서 전환했습니다.\데이터 소스=에 대한 MSQLlocalDB.\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" />
이게 누군가 도움이 됐으면 좋겠네요
Teo Chuen Wei Bryan이 제안한 대로 모든 것을 시도해 보는 것과 함께, 접속 문자열에 올바른 서버/인스턴스 이름도 참조하고 있는지 확인합니다.
데이터베이스 서버 또는 web.config 파일에서 짧은 형식의 호스트 이름/인스턴스를 사용하는 경우 FQDN(Fully Qualified Domain Name)/인스턴스를 사용해야 합니다.
또한 SQL Server 클라이언트가 존재하지 않는 서버에서 연결을 테스트하려면
--> 텍스트 파일을 만들고 파일 확장자를 .udl로 변경합니다.
--> 파일을 오른쪽 클릭하면 [Connection]탭이 표시됩니다.
--> 서버명과 로그온 정보를 입력하고 데이터베이스 서버와의 접속을 테스트합니다.
이게 도움이 됐으면 좋겠다.
실가동 환경에서 갑자기 이 에러가 발생하고 아무것도 변경되지 않은 경우, 아래의 4개의 항목을 순서대로 시험하여 수정 여부를 확인합니다.
- sql server 서비스를 재시작합니다.
- sql 서버를 호출하고 있는 서비스(IIS 등)를 재기동합니다.(SQL 서버에 대한 서비스 콜이 시작되고 응답 오류가 발생할 때까지의 시간이 매우 짧을 경우(1~2초 정도) 문제가 발생할 수 있습니다.
- 서버 sql 서버를 재시작합니다.
- 콜 서비스가 있는 서버를 재기동합니다.
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>
언급URL : https://stackoverflow.com/questions/18060667/cannot-connect-to-server-a-network-related-or-instance-specific-error
'source' 카테고리의 다른 글
SQL Server Management Studio를 사용한 데이터베이스 Import/export (0) | 2023.04.07 |
---|---|
SQL Server에서의 사용자와 로그인의 차이 (0) | 2023.04.07 |
sql 스크립트에서 "기존 연결 닫기"를 지정하려면 어떻게 해야 합니까? (0) | 2023.04.07 |
다중 부품 식별자를 바인딩할 수 없습니다. (0) | 2023.04.07 |
SQL Server에서 외부 키를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.07 |