Web

MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 에러 해결

taenyLog 2023. 6. 28. 07:42
반응형


$ node index.js
APP IS LISTENING ON PORT !
OH NO MONGO CONNECTION ERROR!!!!
MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
    at _handleConnectionErrors (C:\Users\User\project2\Mongoose_Express\node_mod
ules\mongoose\lib\connection.js:792:11)
    at NativeConnection.openUri (C:\Users\User\project2\Mongoose_Express\node_mo
dules\mongoose\lib\connection.js:767:11)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:538:9)
    at process.processTimers (node:internal/timers:512:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) { 'localhost:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    setName: null,
    maxElectionId: null,
    maxSetVersion: null,
    commonWireVersion: 0,
    logicalSessionTimeoutMinutes: null
  },
  code: undefined
}

 

몽고 커넥션 에러가 떠서 구글링했더니 index.js 파일의 몽구스 connect 를 

mongodb://localhost:27017

대신 아래와 같이 

"mongodb://127.0.0.1:27017

로 변경해 주었더니 에러가 해결되었다. 

 

 

 

 

 

- - - - - - - - - - -아래의 내용 참고 

 

 

https://github.com/Automattic/mongoose/issues/12366

node18은 내부적으로 ipv6를 사용해서 localhost는 127.0.0.1이 아니라 :::1 을 가르켜서 localhost대신 ip를 사용하라는 말을 듣고 node 버전 확인해봤더니 18이였음. 

 

17 이상에서 nodejs를 사용하는 경우 mongoose가 고칠 수 있는 것이 아니므로 (수동으로 IP 확인을 처리하지 않고) mongoose 설명서가 localhost더 이상 참조하지 않고 대신 변경되었습니다 127.0.0.1.

요약: 검색하는 모든 사용자: IPv4 주소 대신 IPv6 주소를 가리키는
NodeJS 17이 변경되었습니다 localhost. 해결 방법은 명령줄 옵션을 통해 mongodb 인스턴스를 IPv6 주소로 대체하거나 수신 대기하도록 하는 localhost것 입니다. 현재 기본값) 또는127.0.0.1--ipv6--bind_ip_all

반응형