2011-01-29 237 views
19

我已經安裝了蒙戈和bson_ext 我現在已經創建了一個包含以下內容::蒙戈 - 紅寶石連接問題

require 'rubygems' 
require 'mongo' 

db = Mongo::Connection.new.db("mydb") 
db = Mongo::Connection.new("localhost").db("mydb") 
db = Mongo::Connection.new("localhost", 27017).db("mydb") 

不過我正在上運行的代碼

[email protected]:~$ ruby firstruby.rb 
/home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:451:in `connect': Failed to connect to a master node at localhost:27017 (Mongo::ConnectionFailure) 
    from /home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:554:in `setup' 
    from /home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:98:in `initialize' 
    from firstruby.rb:4:in `new' 
    from firstruby.rb:4:in `<main>' 
以下錯誤的.rb文件

請幫忙!

+6

你的mongo服務器實際在運行嗎?當你執行telnet localhost 27017時會發生什麼? – 2011-01-29 15:58:20

+3

如果mongo沒有運行,只需在另一個終端上執行:`mongod` – 2011-01-29 16:13:16

回答

17

這絕對是由於您的mongo服務器沒有運行。既然你使用的是Ubuntu,那就試試看sudo /etc/init.d/mongodb start,然後看看你的代碼是否有效。

+0

我的init.d中沒有mongodb。 – Chani 2011-01-29 18:17:16

43

有現在這種情況發生了好幾次,這裏是爲我工作的解決方案:

sudo rm /var/lib/mongodb/mongod.lock 
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo start mongodb 
sudo status mongodb 
3

我正好遇到這個由於我的/ etc/hosts文件不包含「localhost」的條目 - 因此Ruby無法解析「本地主機」。我想你可以硬編碼127.0.0.1到您的代碼,而不是 「localhost」 的 - 或修復/ etc/hosts文件包含:

127.0.0.1本地主機

0

在Mac上,使用BREW我發現那brew info mongodb然後用然後

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgentsmongod --config /usr/local/etc/mongod.conf工作!

0

有時候根本沒有足夠的空間。

例外initAndListen:爲 期刊15926可用空間不足,終止

1

如果你是一個Mac上,並用於釀造,重新啓動該服務解決了這個問題對我來說:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 

您可以運行brew info mongodb來查找此信息。