0

私はUbuntuでRailsでMongoidを使おうとしています。Mongodbは、Railsアプリ3.0から3.2で問題なく動作していました。

今日突然、エラーが発生しました "/home/pravinmishra/.rvm/gems/ruby-1.9.2-p318/gems/mongo-1.5.2/lib/mongo/connection.rb:413:in` connect':失敗しましたlocalhost:27017(Mongo :: ConnectionFailure)のマスターノードに接続するには」

多くの場合、私はこの問題に直面します、そして以下のコマンドは私のために働きます。

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

しかし、今日は運がありません。

前の数日前にetc/hostsファイルを変更し、27.0.0.1localhost.meを追加しました

127.0.0.1 localhost.me:3000 localhost ubuntu
127.0.0.1 localhost
127.0.1.1 ubuntu
127.0.0.1 localhost.me locahost ubuntu

私は、これが問題を引き起こしていると思いました。克服するために、mongoid.configファイルlocalhostをlocalhost.meに変更しましたが、それでもエラー「/home/pravinmishra/.rvm/gems/ruby-1.9.2-p318/gems/mongo-1.5.2/lib/mongo/ connection.rb:413:in `connect':localhost.me:27017のマスターノードへの接続に失敗しました(Mongo :: ConnectionFailure)"

mongoid.ymlファイル

defaults: &defaults
  host: localhost
  allow_dynamic_fields: false

development:
  <<: *defaults
  database: xxx_development

test:
  <<: *defaults
  database: xxx_test

# set these environment variables on your prod server
production:
 # host: <%= ENV['MONGOID_HOST'] %>
 # port: <%= ENV['MONGOID_PORT'] %>
 # username: <%= ENV['MONGOID_USERNAME'] %>
 # password: <%= ENV['MONGOID_PASSWORD'] %>
 # database: <%= ENV['MONGOID_DATABASE'] %>


 # set these environment variables on your prod server
production:
  uri: <%= ENV['MONGOHQ_URL'] %>

事前に感謝します、どんな提案もいただければ幸いです。

4

1 に答える 1

1

あなたの/etc/hostsファイルは壊れています

27.0.0.1 localhost.me:3000 localhost ubuntu
  1. IPが正しくありません。localhost27.0.0.1ではなく127.0.0.1にあります
  2. このファイルにポート番号を入れることはできません。hostsローカルDNSオーバーライドと考えてください。

Mongoidは実行中のMongoDBの27.0.0.1を参照しているため、MongoDBを見つけることができません。そして、接続に失敗します。

于 2012-07-09T17:07:03.950 に答える