2013-01-16 27 views
0

我有一個使用mongoid和mongo的rails-app。我爲自己的模特使用了mongoid,並且我使用了mongo,因爲我的ruong-mon存儲損壞了。Mongo vs Mongoid - 爲什麼可以連接1而另一個不可以?

然而在生產中;我得到

Mongo::ConnectionFailure: Failed to connect to a master node at localhost:27017 

當我嘗試連接到ruote存儲。即使我只是做Mongo::MongoClient.new

步驟我已到目前爲止,試圖解決此問題:

  1. 我已經作出了MongoDB的明確主在/etc/mongod.conf

  2. 設置master = true有沒有$ ENV變量設置,可以介入Mongo::MongoClient.new(雙選)

  3. 我試圖用Mongo::MongoClient.new(:slave_ok => true)連接 - 相同的錯誤

  4. 我重新啓動了我的mongo數據庫幾次(無成功)。

  5. 我檢查我的防火牆設置,我可以連接到本地主機:通過telnet 27017(正如所說,mongoid文件可以獲取並存儲W/O問題)

我出我的智慧...有什麼建議嗎?

回答

0

請看:https://jira.mongodb.org/browse/RUBY-525

應該由1.8.2蒙戈寶石固定。

+0

不是整個/最後的答案找到這對MongoDB的項目吉拉更多的細節,但對於那該多好票的三分球非常感謝。 – Hartog

+0

您的報告中沒有足夠的信息來給出最終答案;-)您特別沒有詳細說明開發者和產品環境之間的差異,並且您沒有提供有關版本的任何細節(gem/mongod/ruby​​/oses ) 你用。立即給予這些信息節省時間(你的時間,幫助人的時間)。 – jmettraux

1

發生這種情況的原因是因爲我們在連接期間使用元運算符($ query,$ orderby等)爲ismaster命令發送查詢。此命令的輸出用於確定您是否連接到主節點,並且會失敗,因爲非常舊版本的mongodb不支持使用元運算符。

此修補程序將在1.8.2版本的gem中,但我強烈建議任何仍在運行mongodb 1.8之前版本的用戶進行升級。 2.0是本文發佈之前的最新版本,甚至1.8版本也不再被廣泛支持。

正如jmettraux提到你可以在Ruby-525

相關問題