【问题标题】:pymongo.errors.OperationFailure: errorpymongo.errors.OperationFailure:错误
【发布时间】:2011-06-03 06:21:43
【问题描述】:

我在不同的port 和不同的dbpath 上启动了 3 个mongod 进程。

./bin/mongod --replSet foo/tauquir:27018,tauquir:27019 --rest
./bin/mongod --port 27018 --dbpath /data/db1 --replSet foo/tauquir:27017 --rest
./bin/mongod --port 27019 --dbpath /data/db2 --replSet foo/tauquir:27017 --rest

开始连接为:

CONN = Connection("tauquir:27017", slave_okay=True)
CONN.admin.command("replSetInitiate")
CONN = Connection(["tauquir:27018", "tauquir:27019"])

我得到的回溯:

     CONN.admin.command("replSetInitiate")
              File "/usr/local/lib/python2.6/dist-packages/pymongo-1.9-py2.6-linux-
        i686.egg/pymongo/database.py", line 293, in command msg, allowable_errors)
              File "/usr/local/lib/python2.6/dist-packages/pymongo-1.9-py2.6-linux- 
    i686.egg/pymongo/helpers.py", line 119, in _check_command_response raise 
OperationFailure(msg % response["errmsg"])
            pymongo.errors.OperationFailure: command SON([('replSetInitiate', 1)]) failed: 

all members and seeds must be reachable to initiate set

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    replSetInitiate 是一个一次性命令,因此您可能不希望使用连接初始化进行编码,但在该行之后,您需要使用所有 3 个 mongod 服务器的连接信息来实例化您的 python 客户端。

    在您的示例中,您将 CONN 变量替换为仅与 27018 和 27019 的连接

    db = Connection(["tauquir:27017", "tauquir:27018", "tauquir:27019"])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多