我有一个使用Rails 3.1,Mongo 1.4.0,Mongoid 2.2.4的应用程序设置。
我所经历的是:
Mongo::ConnectionFailure: Failed to connect to a master node at localhost:27017
我以前遇到过这个问题,但是在计算机重启时它就消失了......这次它没有。 我不明白,我什么也没做。我只是把我的电脑置于睡眠模式,回家后将其唤醒,然后就在那里。
以下是sudo mongod
Fri Nov 25 21:47:14 [initandlisten] MongoDB starting : pid=1963 port=27017 dbpath=/data/db/ 64-bit host=xxx.local
Fri Nov 25 21:47:14 [initandlisten] db version v2.0.0, pdfile version 4.5
Fri Nov 25 21:47:14 [initandlisten] git version: 695c67dff0ffc361b8568a13366f027caa406222
Fri Nov 25 21:47:14 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Fri Nov 25 21:47:14 [initandlisten] options: {}
Fri Nov 25 21:47:14 [initandlisten] journal dir=/data/db/journal
Fri Nov 25 21:47:14 [initandlisten] recover : no journal files present, no recovery needed
Fri Nov 25 21:47:15 [websvr] admin web console waiting for connections on port 28017
Fri Nov 25 21:47:15 [initandlisten] waiting for connections on port 27017
我可以在终端中与mongo
建立联系。
经过两个小时的谷歌搜索,我希望SO社区的能力能够解决这个问题。
如果您需要有关我的应用设置的更多信息,请询问。
谢谢!
答案 0 :(得分:3)
你看到的是连接超时......这是在长时间不活动之后发生的,或者是你让计算机进入睡眠状态。
您可以更改/增加超时值,但这样您最终无法摆脱连接超时。
一些MongoDB驱动程序允许设置:timeout =>是的,但Mongoid似乎仍有问题 (参见列表中的最后3个链接)
希望这有帮助。
另见:
Mongodb server goes down, how to prevent Rails app from timing out?
MongoDB: What is connection pooling and timeout?
https://github.com/mongodb/mongo-ruby-driver
How can I query mongodb using mongoid/rails without timing out?
http://groups.google.com/group/mongoid/browse_thread/thread/b5c94e7047b42f8a
答案 1 :(得分:2)
尝试将localhost更改为127.0.0.1!