2016-04-01 11 views
0

作成したレプリカセットにpymongoを接続できないようです。私が見ているメッセージは、私が見ているものではないので、あまり意味をなさないと思われます。PymongoはMongoレプリカセットに接続しません

まず、構成について説明します。

mongod --configsvr --dbpath /mnt/sdb/ --port 27019

次I:

は基本的に私は、それぞれがそれぞれに実行し、別のマシン上で実行して、3台のマシン10.141.0.156、10.141.0.158、10.141.0.159

私は3つのmongodインスタンスを持っているを持っています私は最初のマシン10.141.0.156でmongosを始めました

{ 
    "set" : "replSet", 
    "date" : ISODate("2016-04-01T12:23:12.552Z"), 
    "myState" : 2, 
    "term" : NumberLong(2), 
    "syncingTo" : "10.141.0.158:27017", 
    "configsvr" : true, 
    "heartbeatIntervalMillis" : NumberLong(2000), 
    "members" : [ 
     { 
      "_id" : 0, 
      "name" : "10.141.0.156:27017", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 2751, 
      "optime" : { 
       "ts" : Timestamp(1459513383, 6), 
       "t" : NumberLong(2) 
      }, 
      "optimeDate" : ISODate("2016-04-01T12:23:03Z"), 
      "syncingTo" : "10.141.0.158:27017", 
      "configVersion" : 2, 
      "self" : true 
     }, 
     { 
      "_id" : 1, 
      "name" : "10.141.0.158:27017", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 2749, 
      "optime" : { 
       "ts" : Timestamp(1459513383, 6), 
       "t" : NumberLong(2) 
      }, 
      "optimeDate" : ISODate("2016-04-01T12:23:03Z"), 
      "lastHeartbeat" : ISODate("2016-04-01T12:23:11.054Z"), 
      "lastHeartbeatRecv" : ISODate("2016-04-01T12:23:11.579Z"), 
      "pingMs" : NumberLong(0), 
      "electionTime" : Timestamp(1459510633, 1), 
      "electionDate" : ISODate("2016-04-01T11:37:13Z"), 
      "configVersion" : 2 
     }, 
     { 
      "_id" : 2, 
      "name" : "10.141.0.159:27017", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 2749, 
      "optime" : { 
       "ts" : Timestamp(1459513383, 6), 
       "t" : NumberLong(2) 
      }, 
      "optimeDate" : ISODate("2016-04-01T12:23:03Z"), 
      "lastHeartbeat" : ISODate("2016-04-01T12:23:11.261Z"), 
      "lastHeartbeatRecv" : ISODate("2016-04-01T12:23:12.240Z"), 
      "pingMs" : NumberLong(0), 
      "syncingTo" : "10.141.0.158:27017", 
      "configVersion" : 2 
     } 
    ], 
    "ok" : 1 
} 

次へ::レプリカセットに3台のmongodマシンを追加しました」VEの

mongos --configdb replSet/10.141.0.156:27017,10.141.0.158:27017,10.141.0.159:27017 --port 27077

この時点では、すべて正常に動作しており、エラーは発生していません。

その後、私はpymongo 3.2.1で設定したレプリカに接続しよう:

MongoClient("10.141.0.156", 27077, replicaSet='replSet') 

私はすべてのキーを読み取るために、または書き込みするかしようとすると、私が手:

*** ServerSelectionTimeoutError: No replica set members available for replica set name "replSet"

mongoシェルにセットされたレプリカを見ているにもかかわらず。

+0

はどのようにあなたがさらにreplicaSetのためにあなたのmongodインスタンスを開始しました:詳細については、https://docs.mongodb.org/manual/reference/program/mongod/#bin.mongod

は、セットアップさらにreplicaSetにする方法については、このチュートリアルを参照してください参照してください? – Saleem

答えて

1

レプリカセットの場合、レプリカセットに参加するインスタンスをmongodから開始する必要があります。 --replSetフラグ。

mongod --dbpath /mnt/sdb/ --port 27019 --replSet "your_replicaset_name" 

--configsvrオプションを使用すると、シャーシ用の設定サーバーが開始されますが、レプリカセットは起動しません。 https://docs.mongodb.org/manual/tutorial/deploy-replica-set/

+0

あなたはそうだ、私は完全にそれを逃していた。 configとmongosを使わずに、すべてのノードでmongodを実行し、同じshardに追加するだけでも動作しました。 –

関連する問題