mongo – ruby​​连接问题

我已经安装了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 `' 

请帮忙!

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

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

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

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

127.0.0.1 localhost

如果您使用的是Mac并使用Brew,则重新启动服务会为我解决问题:

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

您可以通过运行brew info mongodb找到此信息。

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

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

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

initAndListen中的exception:15926日记帐的可用空间不足,已终止