mongodb - 无法运行 Mongo shell (Mac)

标签 mongodb terminal homebrew locomotivecms

我是网络开发的新手,我想开始使用一些 RoR(使用 Locomotive CMS)。

Locomotive 要求的其中一件事是拥有 Mongodb。我通过以下链接使用 Homebrew 软件安装 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

它安装正常,但我无法运行它!

当我在终端上输入“mongo”时,我得到以下输出:

"MongoDB shell version: 2.4.3
connecting to: test
Mon May  6 11:12:28.927 
JavaScript execution failed: 
Error: couldn't connect to server        
127.0.0.1:27017 at   src/mongo/shell/mongo.js:L112
exception: connect failed"

帮助调试的背景(在终端上):

1.当我输入 mongod 时,我得到以下信息:

"all output going to: /usr/local/var/log/mongodb/mongo.log"

mongo.log 的所有权:

-rw-r--r--  1 username  admin  22133 May  6 11:13 mongo.log

2.当我输入 mongod --fork 时,我得到以下信息:

about to fork child process, waiting until server is ready for connections.
forked process: 77566
all output going to: /usr/local/var/log/mongodb/mongo.log
ERROR: child process failed, exited with error number 100

3.键入 mongod --help 给出以下警告:

* WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

4.我有一个名为 data 的文件夹(它充当 ammododb 数据库,这是它应该在的地方吗?)在根目录(路径:/data)中数据文件夹的所有权:

 "drwxr-xr-x   3 username  wheel       102 Apr 23 21:38 data"

5.检查端口是否空闲:lsof -i :27017。我还尝试使用 activity montior 检查正在运行的 mongo 进程并发现了 zilch!

No output

6.我也试过:mongo --repair。力帮助!

我被这个问题困扰了一段时间,我查看了 stackoverflow 上的大多数回复并四处搜索以找到解决这个问题的方法,但到目前为止没有任何帮助!

更新:

当我尝试启动 mongo shell 时,我得到了以下 l 来自 mongo.log 的日志消息:

5/6/13 1:33:27.616 PM com.apple.launchd: 
(org.mongodb.mongod[79133])          
open("/private/var/log/mongodb/output.log", ...): Permission denied

所以我为特定文件夹执行了 chmod777,然后 shell 启动了!

虽然我在启动时仍然收到警告:

Server has startup warnings: 
Mon May  6 13:33:27.693 [initandlisten] 
Mon May  6 13:33:27.693 [initandlisten] 
** WARNING: soft rlimits too low. 
Number of files is 256, should be at least 1000

知道如何消除这些警告吗?

最佳答案

要获取确定失败原因所需的信息,您需要查看(并为我们发布)/usr/local/var/log/mongodb/mongo.log 的输出当它试图启动时。

但是,最常见的失败原因是缺少默认数据库路径 - /data/db。创建该文件夹(不要忘记确保您的用户有权读/写它)或使用 --dbpath 选项指定不同的路径。

更新:正如您后来发现的那样,日志文件上的错误权限可能会导致问题,其方式与数据路径上的错误权限类似。

关于警告,你需要的信息在这里:

https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1

不过,这只是一个警告 - 只要负载不重,您就可以在没有这些限制的情况下运行 MongoDB。因此,如果这是一个开发环境,除非您计划进行负载测试,否则应该没问题

关于mongodb - 无法运行 Mongo shell (Mac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392836/

相关文章:

linux - mongod (2.8) "error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory"出错

javascript - 没有连接事件被触发 - Mongoose 4.7.1 & Express

bash - 展开执行另一个别名的别名(嵌套别名)

ruby-on-rails - 无法运行 rails 命令。你的 Ruby 版本是 2.2.1,但是你的 Gemfile 指定了 2.1.4

macos - 在 OSX : LIBFFI not found 上编译 clisp-2.49

python - 我怎样才能让 Homebrew 的 python 和 pyenv 一起生活?

mysql - Homebrew Mariadb Mysql 安装 root 访问被拒绝

javascript - PassportJS 没有将注册数据传递到数据库,可能是数据库连接问题

javascript - meteor 动态分类列表

shell - 有没有办法让后台任务通知终端打印新的提示?