何をしても、Ruby の Mongo ドライバーをレプリカ セットに接続できないようです。この件に関するすべてのチケットとSOの質問を掘り下げ、構文のあらゆる組み合わせを試しました。ただし、最終的には、次のようにRailsコンソールでドライバーAPIを使用しようとするだけになりました。
Mongo::ReplSetConnection.new(['db1.yada.to:27017', 'db2.yada.to:27017'], :read => :primary).db("yada_production")
しかし、常に何を吐き出しても、即座に:
Mongo::ConnectionFailure: Failed to connect to primary node.
db サーバーにログインしてそこから mongo にアクセスすると、db1 が PRIMARY> で、db2 が SECONDARY> であることがわかります。
さらに、ポート 27017 でアプリケーション サーバーから db サーバーに telnet で接続できます。Connection.new を使用して接続を単一のサーバーに戻すと、問題なく機能します。
私は気が狂ってしまいます。私はもともと Mongo ruby driver 1.4 + Rails 3.1 + Mongoid 2.3 + MongoDB 2.0.6 を使用していましたが、同じ問題で 1.6.2 + Rails 3.2 + 2.4.12 + 2.0.6 にアップグレードされました。
私はもともと認証でそれを使用していましたが、物事を簡素化するために認証をオフにしました。
これは完全に壊れていますか?他の人も同様の問題を抱えているようですが、「解決策」はどれも私にとってはうまくいきません。他にアイデアを持っている人はいますか?