ruby - 无法使用种子本地主机 :27017 连接到副本集

标签 ruby mongodb mongoid

我正在使用 mongoid 1.4.12 并且我有一个本地运行的 mongos。这个 mongos 指向几个处于分片模式的副本集。

我的 mongoid.yml 看起来像这样:

production: &production
  database: db_name
  hosts:
    - - localhost
      - 27017
  read_secondary: true

但是我收到了这个错误:

Cannot connect to a replica set using seeds localhost:27017

为什么?应该如何正确配置呢?

恐怕如果我改成

host: locahost

它不会从我的辅助读取。

最佳答案

首先,确保您的 mongos 在端口 27017 上运行 - 使用 mongo shell 连接到它。由于您使用的是默认端口,这就像运行不带参数的 mongo 可执行文件一样简单(它默认连接到 localhost:27017)。

如果没有连接,则 mongos 可能没有运行,这就是你的问题。如果它正在运行并且你可以连接,那么在你的 yml 文件中试试这个:

hosts:
        - localhost:27017

离开 read_secondary 部分以确认连接有效。然后试试这个而不是 read_secondary(见这里:https://github.com/mongoid/mongoid/issues/1368):

options:
    read: :secondary

关于ruby - 无法使用种子本地主机 :27017 连接到副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992444/

相关文章:

ruby-on-rails - 如何使用 Opal 生成示例 Rails 应用程序?

ruby-on-rails - 模型中 Rails 应用程序的基本 URL

java - 将 Joda DateTime 添加到 MongoDB——无法序列化

javascript - MongoDB - 列表中每个 ID 的最新项目

node.js - 如何防止 MongoDB 副本集查询主副本集?

ruby - 在 Ubuntu 中安装 rmagick gem 时遇到问题(已成功安装 ImageMagick)

ruby-on-rails - 如何在 JSON 中获取对象数组的某些属性

ruby-on-rails - 使用 Mongoid 进行不区分大小写的排序

ruby-on-rails - 如何检查 Mongoid 数组字段是否包含另一个数组中的一个或多个项目?

mongodb - 如何通过 Mongoid 中的动态属性对文档进行排序