0

を使用して MongoDB レプリカ セットに接続できた人はいrmongodbますか? シェルmongo.create経由で接続するときに同じホスト/ユーザー名/パスワードが正常に機能する場合でも、どのように構成しても認証エラーが発生します。mongo

私のコードは次と同等です:

> mongo.create(c("rs-1.mysite.com:12345","rs-2.mysite.com:12345"), "rsName", "user", "password", "my_db")
Unable to connect to replset
Authentication failed.

アップデート:

レプリカ セット内のすべてのノードのログを確認すると、上記のコードを実行しても認証が試みられていません。したがって、これはrmongodbバグである可能性があります。

4

2 に答える 2

2

Sim が指摘したように、rmongodb 1.0.3 はホスト名を解決しません

ただし、rmongodb からレプリカ セットに接続することは可能ですが、いくつかの注意事項があります。

  • すべてのホスト名を含める必要があります (シード ホスト リストにプライマリが見つからない場合、rmongodb は接続に失敗します)
  • ホスト名は IP として指定する必要があります
  • 管理ユーザーを使用している場合は、最初に管理データベースに対して認証を行う必要があります (これは、少なくとも予想される動作ですが、注意する価値があります) 。
  • replSet名を提供しないことによってのみ、接続を機能させることができました

したがって、私の作業接続文字列は次のようになります。

mongo.create(c("192.168.1.123:27017","192.168.1.124:27018","192.168.1.125:27017"),"","user","password", "thedb")

注意: これは MongoDB 2.2.0 でのみテストしました。

于 2012-09-16T13:46:22.450 に答える
1

C ソースを見ると、rmongodbホスト名を IP アドレスに解決していないようです。これが機能する唯一の方法は、IP アドレス文字列をドライバーに渡すことです...

IP アドレスとポート番号を渡すことで、ノードの 1 つに接続できます。rmongodbまだレプリカ セットに正常に接続できません。

于 2012-09-03T05:06:51.990 に答える