不管我似乎什麼,我不能讓Ruby的Mongo的驅動程序連接到一個副本集。我已經挖掘了所有的門票和關於這個主題的問題,並嘗試了各種語法組合。不過說到底,我已經結束了只是試圖使用驅動程序API在Rails的控制檯,像這樣:蒙戈Ruby驅動程序無法連接到副本集小學
Mongo::ReplSetConnection.new(['db1.yada.to:27017', 'db2.yada.to:27017'], :read => :primary).db("yada_production")
但無論怎樣它總是吐回來,立刻:
Mongo::ConnectionFailure: Failed to connect to primary node.
當我登錄到數據庫服務器並從那裏訪問mongo我看到db1是PRIMARY>而db2是SECONDARY>
此外,我可以通過端口27017從應用服務器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,同樣的問題。
我最初使用它與權威性,但我已經把身份驗證關閉,現在把事情簡單化。
這只是完全打破?似乎其他人也有類似的問題,但沒有任何'解決方案'爲我工作。其他人有想法嗎?
你剛剛救了我的命。謝謝 – maxdec 2013-07-31 14:52:09