2011-01-29 229 views
19

我已经安装了蒙戈和bson_ext 我现在已经创建了一个包含以下内容::蒙戈 - 红宝石连接问题

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

不过我正在上运行的代码

[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文件

请帮忙!

+6

你的mongo服务器实际在运行吗?当你执行telnet localhost 27017时会发生什么? – 2011-01-29 15:58:20

+3

如果mongo没有运行,只需在另一个终端上执行:`mongod` – 2011-01-29 16:13:16

回答

17

这绝对是由于您的mongo服务器没有运行。既然你使用的是Ubuntu,那就试试看sudo /etc/init.d/mongodb start,然后看看你的代码是否有效。

+0

我的init.d中没有mongodb。 – Chani 2011-01-29 18:17:16

43

有现在这种情况发生了好几次,这里是为我工作的解决方案:

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

我正好遇到这个由于我的/ etc/hosts文件不包含“localhost”的条目 - 因此Ruby无法解析“本地主机”。我想你可以硬编码127.0.0.1到您的代码,而不是 “localhost” 的 - 或修复/ etc/hosts文件包含:

127.0.0.1本地主机

0

在Mac上,使用BREW我发现那brew info mongodb然后用然后

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

0

有时候根本没有足够的空间。

例外initAndListen:为 期刊15926可用空间不足,终止

1

如果你是一个Mac上,并用于酿造,重新启动该服务解决了这个问题对我来说:

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

您可以运行brew info mongodb来查找此信息。