문제

아래와 같이 구성했고 MongoDB 사용자 이름이나 암호가 필요 없음 :

mongo: {
    module: 'sails-mongo',
    url: "mongodb://127.0.0.1:27017/mydb",
    replSet: {
        servers: [
            {
                host: "127.0.0.1",
                port : 27018
            },
            {
                host: "127.0.0.1",
                port : 27019
            }
        ],
        options: {connectWithNoPrimary:true, rs_name:"rs0"}
    }      
}
.

잘 작동합니다. 즉, 연결 오류를 얻지 못하고 쿼리 할 수 있습니다.그러나 내가 127.0.0.1:27017을 다운했을 때, 127.0.0.1:27018은 내가 rs.status ()를했던 것처럼 일차가된다.그런 다음 나는 더 이상 모든 쿼리를 할 수 없으며 다음을 계속 얻을 수 있습니다.

오류 : 열려있는 연결 없음

위의 시나리오를 테스트하기 위해 MongoDB Native Driver를 사용하도록 MongoDB 네이티브 드라이버를 사용하므로 올바르게 설정하고 있으며 문제가 없으며 문제가 없습니다.

var url = 'mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/mydb?w=0&wtimeoutMS=5000&replicaSet=sg1&readPreference=secondary';

mongodb.MongoClient.connect(url, function(err, result) {
    if(err || result === undefined || result === null) {
          throw err;
    } else {
          db = result;  
    } 
});
.

도움이 되었습니까?

해결책

ok 답을 찾았습니다.이 메시지는 session.js로 인해 방출됩니다.나는 파일의 모든 것을 댓글 였고 이제는 일하고 있습니다.내가 추측하는 이유는 session.js에 있으며 원래 기본 인 하나의 호스트만을 가리키는 것입니다.이 mongodb 기본을 가져올 때 session.js는 더 이상 연결할 수 없도록 예외를 던졌습니다.또한 복제본 세트에 호스트 IP를 넣어 세션 .js에서 MongoDB URL 문자열을 시도했습니다 (mongodb : //127.0.0.1 : 27017,127.0.0.1 : 27018,127.0.0.1 : 27018 / mydb)."돛이 들어 올려".단일 호스트 만 넣으면 괜찮습니다.

이제 세션 정보를 저장 해야하는 경우, 다른 MongoDB 인스턴스를 시작해야합니다. Session.js는이 새로운 즉시를 가리 킵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top