2011-01-29 19 views
19

私は今、私はコードモンゴ - ルビー接続の問題

[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ファイル::

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") 

を作成したモンゴとbson_ext がインストールされています

助けてください!

+6

あなたのmongoサーバーは実際に動作していますか? 'telnet localhost 27017'を実行するとどうなりますか? –

+3

mongoが実行されていない場合は、別の端末で実行してください: 'mongod' –

答えて

17

これは間違いなくあなたのmongoサーバーが動作していないためです。あなたはUbuntuにいるので、sudo /etc/init.d/mongodb startを実行して、あなたのコードが動作するかどうか確認してください。

+0

私のinit.dにmongodbはありません。 – Chani

+0

あなたのsommandがコマンドを返さない – Chani

+4

あなたのマシンにmongoがインストールされていますか(私は宝石を意味するのではなく、実際のmongoサーバを意味します)。そうでなければ、 'sudo apt-get install mongodb'をインストールする必要があります。 –

43

が、これは今、数回起こりました、そしてここに私の作品のソリューションです:

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

私は、不正なシャットダウンとそれを解決したロックを削除した後も同様の問題がありました。ありがとう! – vise

+0

も私のためのトリックでした。ありがとう! – asenovm

+0

ありがとう、@グローバルキース! ubuntuのアップデートを実行して再起動していただけです。いたずらubuntu。 – Tass

3

は、私はちょうど原因私の/ etc/hostsファイルにこれを遭遇は「localhost」のエントリを含まないファイル - その結果、 Rubyは "localhost"を解決できませんでした。私はあなたのコードに127.0.0.1をハードではなく、 "localhost" をすることができたと - etc/hostsファイルが含まれて/または修正:

127.0.0.1 localhostの

Mac上で
0

、私が見つけた醸造を使用してそのbrew info mongodbを使用してから

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgentsまたはmongod --config /usr/local/etc/mongod.confが機能しました。

0

場合によっては、十分なスペースがないことがあります。 initAndListenで

例外: ジャーナルの15926十分な空きスペース、あなたがMac上でだとブリュを使用した場合

1

を終了、サービスの再起動は私のためにそれを解く:

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

brew info mongodbを実行すると、この情報が見つかります。