[MongoDB 에러] MongooseServerSelectionError: connect ECONNREFUSED ::1:27017

Seung Hyeon ·2023년 4월 25일
0

Issues

목록 보기
2/5

Express를 실행하기 위해 먼저 yarn을 설치

> npm install -- global yarn

라이브러리 설치 커멘드 실행
→ package.json을 바탕으로 자동으로 라이브러리를 한꺼번에 설치

> yarn

Express 실행

> yarn start

 
그런데 아래와 같은 오류가 나타났다.

" MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 "

아무래도 MongoDB 연결에 문제가 생긴 듯하다.

 
.env 파일 내부를 살펴보자

SERVER_PORT=5001
MONGODB_URL="mongodb://localhost:27017/myDB"

겉으로 보기에는 아무 문제 없는 것 같은데...

챗GPT의 도움을 빌려보니, 아래와 같은 답변을 받았다.

첫번째 원인

MongoDB가 실행되고 있지 않습니다. MongoDB를 시작하고 실행 중인지 확인하세요

MongoDB는 잘 실행되고 있는 것 같다.
좀 더 확실하게 하기 위해 서비스에 접속해서 확인해보았다.

MongoSB Server가 실행 중이라고 뜬다.

두번째 원인

MongoDB가 localhost:27017에서 실행 중이 아닙니다. 이 경우 연결 URL을 수정해야 합니다.

서버가 잘 떴는지 확인핳기 위해 localhost:27017 에 접속하니 위와 같은 메세지가 떴다.
네이티브 드라이버로 접근하지 않고 HTTP로 접근했다는 뜻인 것 같다. 서버는 잘 실행되고 있는 것으로 보인다.

세번째 원인

로컬 방화벽이 MongoDB 연결을 차단하고 있습니다. 로컬 방화벽을 잠시 비활성화하고 연결을 다시 시도하거나, 방화벽 설정을 수정하여 MongoDB 연결을 허용해야합니다.

아래 링크를 참고하여 로컬 방화벽에 접속하였다.
https://www.pfu.ricoh.com/imaging/downloads/manual/ss_webhelp/hn/help/webhelp/topic/refer_firewall.html?model=ix1600

특정 포트 27017로 연결허용 설정한 뒤 다시 연결 시도를 해보았다. 그러나 실패.

다른 해결법 찾기

위의 3개의 방법으로도 해결이 안되서 구글링을 해보았다.
https://www.mongodb.com/community/forums/t/mongooseserverselectionerror-connect-econnrefused-127-0-0-1-27017/123421
위 링크에서 해답을 찾았다.

I just found a solution in the internet ,
If you are using latest nodejs (v17.x) , then try updating mongodb url from localhost to 127.0.0.1
This worked for me

즉, MongoDB URL에서 localhost 부분을 127.0.0.1 로 바꾸는 것이다.

MONGODB_URL="mongodb://127.0.0.1:27017/myDB"

로 수정한 뒤, Express 실행해보았더니..

성공!!!

결론

.env파일의 MongoDB URL을 "mongodb://localhost:27017/myDB" → "mongodb://127.0.0.1:27017/myDB"로 변경

의외로 해결방법이 너무 간단했다. 이 간단한 에러를 4시간이나 붙잡았다니..

profile
안되어도 될 때까지

0개의 댓글