mongo - ruby​​连接问题

时间:2011-01-29 14:37:10

标签: ruby mongodb

我安装了mongo和bson_ext 现在我创建了一个包含以下内容的.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")

但是我在运行代码时遇到以下错误

yuzaki@ubuntu:~$ 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>'

请帮忙!

6 个答案:

答案 0 :(得分:43)

现在已经发生了好几次,这里有适用于我的解决方案:

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

答案 1 :(得分:17)

这肯定是因为你的mongo服务器没有运行。由于您使用的是Ubuntu,请尝试执行sudo /etc/init.d/mongodb start,然后查看您的代码是否有效。

答案 2 :(得分:3)

我刚刚遇到这个,因为我的/ etc / hosts文件中没有包含“localhost”的条目 - 因此Ruby无法解析“localhost”。我想你可以将127.0.0.1硬编码到你的代码而不是“localhost” - 或修复/ etc / hosts来包含:

  

127.0.0.1 localhost

答案 3 :(得分:1)

If you're on a Mac and used Brew, restarting the service solved it for me:

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

You can find this info by running brew info mongodb.

答案 4 :(得分:0)

在mac上,使用brew我发现brew info mongodb然后使用

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

答案 5 :(得分:0)

有时候没有足够的空间。

  initAndListen中的

异常:15926可用空间不足   期刊,终止

相关问题