【问题标题】:Why cant I connect to replica set using mongo shell?为什么我不能使用 mongo shell 连接到副本集?
【发布时间】:2017-06-07 23:39:16
【问题描述】:

我可以使用 mongo shell 版本 3.2.11 中的以下命令连接到副本集。但同样不适用于 mongo shell v3.4.1。

mongo --host \
      "replicaSet1/10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000" mydbname \
      -u root -p root \
      --authenticationDatabase admin

 [main] Error: Failed to parse mongodb:// URL: mongodb://replicaSet1/10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname :

我已阅读here 说副本集地址格式自 v 3.4.1 版本以来没有改变。

为什么我无法连接到 db ?根据新格式(如果存在),解析错误是什么。

【问题讨论】:

    标签: mongodb mongo-shell


    【解决方案1】:

    这是 MongoDB 3.4.0/3.4.1 中已知的回归:SERVER-27289: mongo --host replSet/Host:Port no longer works。已为即将发布的 MongoDB 3.4.2 版本提交修复。

    您可以在受影响的 3.4.x mongo shell 中通过使用标准 MongoDB Connection String URI 格式来解决此问题:

    mongo --host mongodb://10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname?replicaSet=replicaSet1
    

    您也可以使用标准 MongoDB 连接字符串作为普通参数(即不带 --host 参数):

    mongo mongodb://10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname?replicaSet=replicaSet1
    

    我在这里读到副本集地址格式自 v 3.4.1 版本以来没有改变。

    在 MongoDB 3.4 中添加了对在 --host 参数中使用标准 MongoDB 连接字符串格式的支持,以便将 mongo shell 连接字符串语法与所有官方驱动程序使用的格式保持一致。

    目前 MongoDB 3.4 手册中没有说明此更改,因此我已提出 DOCS-9808 进行澄清。

    【讨论】:

    • replicaSet1 和replset 有什么区别?你必须放两次副本集?
    • @FacundoChambo 哎呀.. 转录失败。接得好!我已经修复了示例,因为副本集名称只需要出现一次。
    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2013-03-30
    • 2020-07-14
    • 2021-10-30
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多