【问题标题】:Mongo: lost connection & collectionsMongo:失去联系和收藏
【发布时间】:2012-06-14 17:42:04
【问题描述】:

我在本地机器上运行了一个 Rails rake 任务,以便为我的 Mongo 集合播种。在我收到以下异常之前,它可能已经生成了大约 45,000 条记录:

Operation failed with the following exception: connection closed

Failed to connect to a master node at localhost:27017

我在 Mac OS X 上,所以我尝试mongo 并收到以下信息:

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

所以我运行mongod 认为这将简单地启动该过程。它现在似乎已经索引了新的集合,因为它们都是空的。我是否覆盖了它们,或者它们可能仍然存在于某个地方?

我跑了ls /data/db,我看到myapp_development.0myapp_development.ns。这能告诉我什么吗?

【问题讨论】:

  • 我重新启动了系统,现在一切正常???

标签: mongodb ruby-on-rails-3.1 mongoid


【解决方案1】:

听起来您的 MongoDB 数据目录设置为默认值 (/data/db) 以外的其他位置。重新启动可能会使用正确的 --dbpath 启动 mongod。

例如,如果您遵循 MAMP 安装指南,建议可能是将数据目录放在 /Applications/MAMP/db/mongo 中。

您应该能够通过在 mongo JS shell 中运行以下命令找到使用的 dbpath:

db.adminCommand('getCmdLineOpts')

查找“dbpath”的解析设置。

【讨论】:

  • 结果是/usr/local/var/mongodb。我不明白为什么我的rails c 会连接到一个空的数据库,然后在重新启动后连接到完整的数据库。我的自动启动 Mongo 是否可能与崩溃后运行 mongod 不同?
  • 如果您在没有任何选项的情况下启动 mongod,它将假定数据目录 (dbpath) 是 /data/db。如果该目录不存在或不可写,mongod 将显示错误消息并拒绝启动。只要数据目录存在并具有适当的读/写权限,mongod 就会在该目录中创建和使用数据文件。如果数据目录为空,这实际上与从全新安装开始相同:在您开始插入数据之前,您的任何数据库/集合都不存在。
  • 您拥有的自动启动脚本相当于运行mongod --dbpath /usr/local/var/mongodb。如果您想保存一组一致的从命令行启动的选项,您可以在配置文件中指定它们,例如mongod --config /etc/mongodb.conf。选项记录在File Based Configuration
猜你喜欢
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多