【问题标题】:mongoid connection issuemongoid 连接问题
【发布时间】:2012-07-09 02:30:42
【问题描述】:

我一直在尝试在 Ubuntu 上将 Mongoid 与 Rails 一起使用。 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.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'] %>

任何建议将不胜感激,在此先感谢..!!

【问题讨论】:

  • 请在您定义数据库连接配置的地方发布您的 mongoid.yml 配置文件
  • defaults: &defaults host: localhost allow_dynamic_fields: false development: # 端口: # 用户名: # 密码: # database: # 在你的 prod 服务器生产环境中设置这些环境变量: uri:
  • @abhash,快速回复。我编辑了问题并添加了 mongoid.yml 文件。一次看看..!
  • 在 ubuntu 中,如果你输入“mongo”,它会连接到 mongo 的控制台外壳吗?
  • @ Jesse ,得到同样的错误。 MongoDB shell 版本:2.0.1 连接到:测试 Mon Jul 9 22:47:06 错误:无法连接到服务器 127.0.0.1 shell/mongo.js:84 异常:连接失败

标签: ruby-on-rails mongoid


【解决方案1】:

您的/etc/hosts 文件已损坏

27.0.0.1 localhost.me:3000 localhost ubuntu
  1. 您的 IP 不正确。 localhost 位于 127.0.0.1,而不是 27.0.0.1
  2. 您不能将端口号放入此文件。将 hosts 视为本地 DNS 覆盖。

因为 Mongoid 在 27.0.0.1 中查找正在运行的 MongoDB,所以找不到。并且无法连接。

【讨论】:

  • 嘿,只有 127.0.0.1 localhost.me:3000 localhost ubuntu。我在发布问题时犯了错误。我编辑了。对此感到抱歉。
  • 那么您的 MongoDB 可能没有正确启动。请查看您的/var/log/mongodb/mongodb.log
  • 并且有问题的行旁边有一个错字locahost
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多