无法使用种子localhost:27017连接到副本集

时间:2012-08-16 17:26:28

标签: ruby mongodb mongoid

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

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

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

但是我收到了这个错误:

  

无法使用种子localhost:27017

连接到副本集

为什么呢?那怎么应该是正确的配置呢?

我担心如果我改为

  

主持人:locahost

它不会从我的中学读到。

2 个答案:

答案 0 :(得分:4)

首先,确保您的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

答案 1 :(得分:-1)

所以我的最终配置是:

production: &production
  database: db_name
  host: localhost
  slave_ok: true

通过我的localhost mongos,它可以很好地从中学阅读。