1

mongoid 1.4.12を使用していて、ローカルで実行されているmongoがあります。このmongoは、シャーディングモードのいくつかのレプリカセットを指しています。

私のmongoid.ymlは次のようになります:

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

ただし、このエラーが発生します:

シードlocalhost:27017を使用してレプリカセットに接続できません

なんで?では、どのように適切な構成にする必要がありますか?

私がに変更した場合、私は恐れています

ホスト:locahost

それは私のセカンダリから読みません。

4

2 に答える 2

4

まず、mongoがポート27017で実行されていることを確認します-mongoシェルで接続します。デフォルトのポートを使用しているので、これは引数なしで実行可能ファイルを実行するのと同じくらい簡単ですmongo(デフォルトではlocalhost:27017で接続します)。

それが接続されない場合は、mongosが実行されていない可能性があり、それが問題です。実行中で接続できる場合は、代わりにymlファイルでこれを試してください。

hosts:
        - localhost:27017

read_secondaryピースを省略して、接続が機能することを確認します。次に、read_secondaryではなくこれを試してください(ここを参照:https ://github.com/mongoid/mongoid/issues/1368 ):

options:
    read: :secondary
于 2012-08-16T17:46:52.213 に答える
-1

したがって、私の最終的な構成は次のとおりです。

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

そしてそれは私のローカルホストmongosを通してセカンダリからうまく読んで動作します。

于 2012-08-17T16:17:43.593 に答える