由于某些原因,我已经从Mongo_Mapper切换到了Mongoid,并且在部署到生产环境时遇到了问题。我使用的是NGINX、Rails 3.1和Passenger。我一直收到这样的消息,“无法在myusernamehere:27017 (Mongo::ConnectionFailure)连接到主节点”。
defaults: &defaults
host: localhost
# slaves:
# - host: slave1.local
# port: 27018
# - host: slave2.local
# port: 27019
development:
<<: *defaults
database: s3uploadergen_development
test:
<<: *defaults
database: s3uploadergen_test
production:
host: localhost
port: 27017
database: mydbnamehere
username: myuserhere
password: mypasswordhere我已经对所有设置进行了三次检查,并尝试了ENV方法(将ENV变量添加到production.rb并通过文档记录的mongoid方法调用它们,但也遇到了同样的问题):
production:
host: <%= ENV['MONGOID_HOST'] %>
port: <%= ENV['MONGOID_PORT'] %>
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>理想情况下,我只想在production.rb或某种初始化器中指定它。
发布于 2011-09-21 03:04:27
我假设您所说的“文档mongoid方法”是指设置推荐的"uri“参数,而不是所有这些不同的设置。你可能想尝试一下,因为这是推荐的方法。
defaults: &defaults
persist_in_safe_mode: true
development:
<<: *defaults
host: localhost
database: app_development
test:
<<: *defaults
host: localhost
database: app_test
production:
<<: *defaults
uri: <%= ENV['MONGOHQ_URL'] %>请注意,我确实使用了Heroku,但我没有使用MongoHQ插件。我只是直接使用它,所以我手动设置了我的MONGOHQ_URL。您的uri如下所示:
mongodb://<user>:<password>@<the.db.host.com>:<port>/<database_name>在我看来,基于这个错误,你不能连接到"localhost“(比如你可能需要完整的主机名或IP或其他什么?)。你的应用程序日志里有什么吗?
只需确保不在任何ENV上设置"host“和"uri”,因为"host“将覆盖从uri派生的设置。
https://stackoverflow.com/questions/7490004
复制相似问题