0

我一直在尝试在 Ubuntu 上将 Mongoid 与 Rails 一起使用。Mongodb 使用 rails app 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': Failed连接到 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.1 localhost.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

Your /etc/hosts file is broken

27.0.0.1 localhost.me:3000 localhost ubuntu
  1. Your IP is incorrect. localhost is at 127.0.0.1, not 27.0.0.1
  2. You can't put port numbers into this file. Think of hosts as a local DNS override.

Because Mongoid looks at 27.0.0.1 for a running MongoDB, it can't find one. And fails to connect.

于 2012-07-09T17:07:03.950 回答