programing

오류: "MongoDB Atlas 클러스터의 서버에 연결할 수 없습니다."

jooyons 2023. 6. 24. 09:01
반응형

오류: "MongoDB Atlas 클러스터의 서버에 연결할 수 없습니다."

노드 앱에서 "MongoDB Atlas 클러스터의 서버에 연결할 수 없습니다."라는 메시지를 표시합니다.현재 IP 주소가 Atlas 클러스터의 IP 화이트리스트에 있는지 확인하십시오."

IP 화이트리스트에 0.0.0.0과 함께 현재 IP 주소를 이미 추가했습니다.

아래는 오류 메시지 사진과 연결하기 위해 작성한 코드입니다.node.js와 mongodb는 처음입니다.저는 여기에 있는 모든 해결책을 살펴보았지만 어느 것도 이 문제를 해결할 수 없었습니다.

var express = require('express');
var bodyparser = require('body-parser');
var mongoose = require('mongoose');

var app = express();
app.use(bodyparser.json());

mongoose
     .connect("mongodb+srv://<username:password>@my-cluster.mongodb.net/test?retryWrites=true&w=majority", 
     { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true })
     .then(() => console.log( 'Database Connected' ))
     .catch(err => console.log( err ));

    app.listen(3003)

이것은 nodedemon을 실행한 후 발생하는 오류입니다.

[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
MongooseError [MongooseServerSelectionError]: Could not connect to any servers in your MongoDB Atlas cluster. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/.
    at new MongooseServerSelectionError (C:\Users\anna james\Dropbox\MERN_SHOPPING_LIST\back\node_modules\mongoose\lib\error\serverSelection.js:24:11)
    at NativeConnection.Connection.openUri (C:\Users\anna james\Dropbox\MERN_SHOPPING_LIST\back\node_modules\mongoose\lib\connection.js:823:32)
    at Mongoose.connect (C:\Users\anna james\Dropbox\MERN_SHOPPING_LIST\back\node_modules\mongoose\lib\index.js:333:15)
    at Object.<anonymous> (C:\Users\anna james\Dropbox\MERN_SHOPPING_LIST\back\server.js:9:7)
    at Module._compile (internal/modules/cjs/loader.js:1157:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1177:10)
    at Module.load (internal/modules/cjs/loader.js:1001:32)
    at Function.Module._load (internal/modules/cjs/loader.js:900:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  message: "Could not connect to any servers in your MongoDB Atlas cluster. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/.",
  name: 'MongooseServerSelectionError',
  reason: TopologyDescription {
    type: 'ReplicaSetNoPrimary',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map {
      'cluster1-shard-00-01-m3rzz.mongodb.net:27017' => [ServerDescription],
      'cluster1-shard-00-02-m3rzz.mongodb.net:27017' => [ServerDescription],
      'cluster1-shard-00-00-m3rzz.mongodb.net:27017' => [ServerDescription]
    },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  },
  [Symbol(mongoErrorContextSymbol)]: {}
}


오류 메시지 및 코드

이렇게 해보세요.MongoDB Atlas->NetworkAccess->Edit->Allow Any

나한테 효과가 있었어요!

프록시를 사용하고 있습니까?먼저 다른 인터넷 연결을 시도하십시오.

Follow below steps:
1] Go to https://www.mongodb.com/cloud/atlas
2] login to your mongodb atlas account
3] Click on network access

i] if you have already added ip address, then here you can see ip access list
a] click on delete 

ii] if you have not already added ip address, then just follow below steps:

4] click on add ip address
5] select 'add current ip address' or if you want you can also select 'allow access from anywhere'
6] type in comment if you want
7] click on confirm button
8] this will show pending loader, wait until it shows active status
9] now restart your server on terminal by typing 'npm start'

-- That's it!

암가올사가용이 있는 allowed access from anywhere방화벽이 있는 네트워크에 문제가 있습니다.내 것은 방화벽이 있어서 네트워크만 변경해서 문제를 해결했습니다.

저는 이 변경을 통해 MongoDB의 서버에 대한 연결 문제를 해결할 수 있었습니다.

MongoDB Atlas -> Network Access -> Edit -> 어디서든 접근 허용

그것이 올바른 이유인지 확실하지 않습니다.하지만 VPN 연결을 해제하면 작동합니다.

VPN에 연결되면 아래 오류 메시지가 나타납니다.

오류: "MongoDB Atlas 클러스터의 서버에 연결할 수 없습니다.현재 IP 주소가 Atlas 클러스터의 IP 화이트리스트에 있는지 확인하십시오."

항상 IP에 문제가 있는 것은 아닙니다.DB 이름, 사용자 이름 또는 암호에 문제가 있을 수 있습니다.연결도 실패했습니다.

시스템 설정 때문일 수도 있습니다.

저의 경우 서버 시스템의 날짜 및 시간 설정이 현재 날짜 및 시간 설정으로 업데이트되지 않아 서버에서 db로의 연결이 거부되었습니다.동일하게 업데이트하고 서버를 다시 시작하면 연결이 성공적으로 완료됩니다.

Mongo 프로젝트에서 네트워크 액세스 섹션으로 이동하여 IP를 편집하여 아무 곳에서나 액세스할 수 있도록 합니다(0.0.0/0).어디서나 액세스를 허용할 때 모든 데이터베이스 사용자에 대해 강력한 자격 증명(사용자 이름 및 암호)을 사용해야 합니다.

lakshitha-samod가 말했듯이, 그것은 IP 주소 문제뿐만 아니라, 다를 수 있습니다.

(저의 경우에는 db 비밀번호 대신 로그인 비밀번호를 사용했습니다.)

mongodb+srv://<username>:<password>@<clusterName>.p9ykp.mongodb.net/<databaseName>?retryWrites=true&w=majority

IP 주소(교차 확인용)

네트워크 액세스로 이동 -> 추가/편집 -> 현재 IP 주소 추가 또는 아무 곳에서나 액세스 허용

DB 사용자 확인/ 생성

데이터베이스 액세스로 이동 -> 새로 만들기 / 기억나지 않으면 암호 편집 및 재설정

데이터베이스 이름

클러스터로 이동 -> 컬렉션 찾아보기 -> 컬렉션을 선택합니다(데이터베이스 이름: ex: sample_training).

저도 똑같은 문제가 있었습니다. 여기에 다음과 같은 예가 있습니다.

mongodb+srv://<접근 권한이 있는 사용자DB>:<password>@dev-12abc.mongodb.net/ <yourDatabaseName>?retryWrites=true&w=retryWrites

  1. WithAccessToDB가 액세스할 수 있는 지점의 사용자 이름을 확인합니다.
  2. 문자열의 암호 부분에서 암호가 올바른지 확인합니다.
  3. 데이터베이스가 존재하고 DatabaseName 슬롯에 올바른 데이터베이스에 연결되어 있는지 확인합니다.
  4. 문자열의 시작 부분에 +srv가 있는지 확인합니다.

mongodb+srv

저는 이것과 너무 오랫동안 씨름하다가 마침내 제 라우터의 방화벽을 확인하려고 생각했습니다.저는 그것을 한 시점에서 가장 높은 보안 수준으로 설정했고, 대신 한 단계 낮게 설정했고, 그것이 그것을 해결했습니다!

라우터의 기본 IP 주소는 일반적으로 192.168.0.1이지만 경우에 따라 다를 수 있습니다.해당 IP로 이동하여 관리자로 로그인한 후 방화벽 설정을 변경해 보십시오.물론 일부 보안에 대한 보상도 있지만, 제 경우에는 이 설정이 스마트 장치 연결과 같은 다른 것들도 엉망으로 만들고 있었습니다.

프록시 또는 인증서 기반 인터넷을 사용하는 경우 이 유형 문제가 발생합니다.다른 인터넷 연결을 시도합니다.

서버가 VPC -> Private Subnet에 설정되어 있는 경우.이 경우 EC2는 NAT 게이트웨이(퍼블릭 서브넷에 설정됨)를 사용하므로 아틀라스 화이트리스트에 NAT 게이트웨이 IP를 추가합니다.

Atlas에서 볼 수 있는 IP 주소가 반드시 워크스테이션의 IP 주소는 아닙니다.NAT를 수행하거나 VPN을 사용하는 라우터 뒤에 표시되는 주소가 라우터 중 하나 또는 VPN의 종료 지점인 경우.

먼저 어디에서나 액세스를 허용합니다.작동하는 경우 공용 주소가 아닌 IP 주소를 화이트리스트에 추가했기 때문일 가능성이 높습니다. IP로 공용 https://www.whatismyip.com/

위의 내용이 작동하지 않을 경우 도움이 되는 추가 정보가 필요합니다.

IP 주소를 화이트리스트에 추가하려면 MongoDB Atlas의 대상 클러스터로 이동합니다.다음으로 보안 탭 아래의 네트워크 액세스로 이동합니다.IP 화이트리스트 탭에서 IP 주소 추가를 클릭합니다.화이트리스트 항목에 IP 주소를 수동으로 입력한 다음 확인을 클릭합니다.코드를 실행하면 문제없이 실행할 수 있습니다.

문제를 해결한 세 가지 방법:

  1. 내 불꽃놀이를 무력화시키는 것.
  2. 어디서든 Atlas IP에 액세스할 수 있습니다.어떻게 --> 내 네트워크 액세스 > 편집(내 IP 주소) > 새 IP를 0.0.0/0으로 설정하고 확인합니다.
  3. MongoDB Atlas > Database Access > 아래 이미지의 3단계를 완료하여 비밀번호를 업데이트합니다(@piouson으로 크레딧).또한 업데이트된 비밀번호를 server.js의 mongoDB compress 및 mongoge.connect에 복사합니다.

MongoDB URI가 끝날 때까지 문제가 없으면 방화벽을 비활성화한 다음 MongoDB를 연결하면 작동합니다. 그러면 MongoDB 클러스터 IP 주소 화이트리스트를 만든 다음 문제 없이 방화벽을 다시 활성화할 수 있습니다.

사용자에게 적합한 솔루션이 없는 경우 OS의 날짜와 시간을 확인합니다.잘못된 경우 Atlas는 연결을 거부하지만 IP 화이트리스트를 제안하는 동일한 오류를 표시합니다.

WSL을 사용하는 경우 WSL 배포자의 날짜와 시간도 확인해 보십시오.Windows(윈도우)와 동기화해야 하지만 동기화되지 않을 수도 있습니다.그런 경우 다음 명령을 사용하여 WSL 클럭을 Windows와 다시 동기화할 수 있습니다.

sudo hwclock -s

만약 당신이 컴퍼스와 연결할 수 있지만 WSL과 연결할 수 없다면, 이것이 아마도 문제일 것입니다.

사용 중인 경우 프록시 또는 VPN을 제거한 다음 로 이동합니다.network setting > Add new Ip and select Allow access from any where그래도 작동하지 않으면 다시 로 이동합니다.network setting > Add new Ip > this time add current Ip 그러면 이것은 110%로 작동할 것입니다.문제가 있으면 언제든지 물어보세요.

mongodB와 관련하여 다음과 같은 문제가 발생할 경우 다음과 같은 질문을 염두에 두십시오.

오랜 휴식 후에 다시 mongodb로 작업을 시작하기 전에 IP 주소를 바꿨습니까?만약 없다면, 보통 mongodb는 6시간마다 제거하기 때문에 변경해주세요.

제가 저번에 일했던 곳에서 이사를 했나요?가능한 경우 IP를 다시 변경하고 활성화하십시오.

https://studio3t.com/knowledge-base/articles/mongodb-atlas-login-ip-whitelisting/ #http-multiple-or-transportal-ip-messages 링크를 방문하여 이러한 오류가 발생하는 이유와 해결 방법에 대해 자세히 알아보십시오.도움이 많이 됩니다.

언급URL : https://stackoverflow.com/questions/61937581/error-could-not-connect-to-any-servers-in-your-mongodb-atlas-cluster

반응형