我正在使用mongoid 1.4.12并且我有一个运行本地的mongos。这个mongos指向分片模式中的几个副本集。
我的mongoid.yml看起来像这样:
production: &production
database: db_name
hosts:
- - localhost
- 27017
read_secondary: true
但是我收到了这个错误:
无法使用种子localhost:27017
连接到副本集
为什么呢?那怎么应该是正确的配置呢?
我担心如果我改为
主持人:locahost
它不会从我的中学读到。
答案 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,它可以很好地从中学阅读。