이거때문에 오랫동안 개고생.
.net core 2.0 개발을 하다보면 튜터리얼부터 로컬디비를 사용하는 경우가 많은데,
이상하게 dotnet ef , 웹앱에서 DB접속은 문제가 없는데...
VisualStudio 에서 "SQL Server 개체 탐색기" 또는 "SQL Management Studio"으로
SQLLocalDB에 접속하면 문제가 발생.
오류메세지...
파이프의 다른 끝에 프로세스가 없습니다. Microsoft SQL Server, 오류: 233
개발하는데 문제는 없었기 때문에 짜증은 나지만 해결하려고 하지 않다가
원인을 찾아서 고치는데 한참 걸려서... 아까워서 기록합니다.
개고생한 원인
보통은 VisualStudio 만 설치하면 SQLLocalDB가 설치되기 때문에 그데로 사용하면 문제가 없는데,
나는 미쳤는지 MSSQL-Express 를 설치했는데..
문제는 이게 localDB를 설치하고, 결국 SQLLocalDB의 버전이 2개가 되면서 문제가 발생.
확인
명령어 프롬프트를 관리자모드로 실행하고 SQLLocalDB 명령어를 이용해서 localDB를 점검해줘야 한다.
참고:
https://docs.microsoft.com/ko-kr/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe
C:\sqllocaldb i
MSSQLLocalDB
ProjectsV13
sqllocaldb i 명령어를 입력하면 localDB 목록이 나옴.
C:\sqllocaldb v
Microsoft SQL Server 2016 (13.1.4001.0)
Microsoft SQL Server 2017 (14.0.1000.169)
sqllocaldb v 명령어를 입력하면 설치된 localDB의 버전이 나옴.
나는 Microsoft SQL Server 2017 (14.0.1000.169) < 이놈이 문제였음.
C:\sqllocaldb i mssqllocaldb
이름: mssqllocaldb
버전: 14.0.1000.169
공유 이름:
소유자: ...................
자동 생성: 예
상태: 실행 중
마지막 시작 시간: 2018-02-22 오후 3:17:11
인스턴스 파이프 이름: np:\\.\pipe\LOCALDB#AC37BB33\tsql\query
sqllocaldb i mssqllocaldb 명령어를 이용해서 mssqllocaldb(데이터베이스 이름)의 정보를 보면.
버전이 14.... Visual Studio 2017 기준으로 13이 맞음... 젠장.
해결
VisualStudio 2017 Professional 기준으로 Microsoft SQL Server 2016 LocalDB 을 남겨놓고 모두 삭제하면 됨.
이미 삭제해서 없지만 Microsoft SQL Server 2017 LocalDB 가 있었음.
추가
LocalDB를 삭제했지만, 이미 만들어져있는 MSSqlLocalDB 의 버전이 14.... 이기 때문에 삭제하고 다시 만들어줘야 함.
C:\sqllocaldb p mssqllocaldb
LocalDB 인스턴스 "mssqllocaldb"이(가) 중지되었습니다.
sqllocaldb p mssqllocaldb "p" 명령어를 이용해서 DB를 멈추고(안멈추면 삭제가 안됨)
C:\sqllocaldb d mssqllocaldb
LocalDB 인스턴스 "mssqllocaldb"이(가) 삭제되었습니다.
sqllocaldb d mssqllocaldb "d" 명령어를 이용해서 DB를 삭제.
그러면 자동으로 다시 MSSQLLocalDB를 만들어짐.
자동으로 만들어질때 설치된 localDB의 최신버전으로 만들어지기 때문에 위 내용대로 필요없는 버전은 삭제하고 진행해야 함.