我是网络开发的新手,我想开始使用一些 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
选项指定不同的路径。
更新:正如您后来发现的那样,日志文件上的错误权限可能会导致问题,其方式与数据路径上的错误权限类似。
关于警告,你需要的信息在这里:
不过,这只是一个警告 - 只要负载不重,您就可以在没有这些限制的情况下运行 MongoDB。因此,如果这是一个开发环境,除非您计划进行负载测试,否则应该没问题
关于mongodb - 无法运行 Mongo shell (Mac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392836/