Question

J'ai configuré comme ci-dessous et mon MongoDB n'a pas besoin d'un nom d'utilisateur ou d'un mot de passe:

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"}
    }      
}

Cela fonctionne bien, ce qui signifie que je ne reçois pas d'erreur de connexion et je suis capable de faire interroger.Mais lorsque j'ai abattu le 127.0.0.1:27017, 127.0.0.0.1:27018 devient primordial comme si je faisais un Rstatus ().Après cela, je ne suis plus en mesure de faire une requête et de continuer à obtenir ce qui suit:

Erreur: pas de connexions ouvertes

Je suis sûr que je configurais correctement la réplique dans ma machine locale, car j'utilisais le pilote natif de Mongodb pour tester le scénario mentionné ci-dessus (traduire la prise primaire et secondaire en tant que primaire) et il n'y a pas de problème.

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;  
    } 
});

Était-ce utile?

La solution

OK j'ai trouvé la réponse.Ce message émis à cause de session.js.J'ai tout commenté dans le dossier et maintenant ça marche.La raison pour laquelle je suppose est en session.js, il ne pointe que d'un seul hôte, qui est le primaire original.Lorsque vous ramenez cette primaire de MongoDB, Session.js ne peut plus se connecter, il a donc lancé une exception.J'ai également essayé la chaîne d'URL de Mongodb dans Sessions.js en mettant également l'adresse IP des hôtes dans la réplique Set (MongoDB: //127.0.0.1: 27017 127.0.0.1: 27018 127.0.0.1: 27019 / MYDB) mais n'a pas réussi à"Sails Ascenseur".Lorsque vous n'actionnez qu'un seul hôte célibataire, tout va bien.

Maintenant, si je dois stocker des sessions info, je dois démarrer une autre instance de MongoDB, puis Session.js Pointez sur ce nouvel instant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top