Mongo让我失望

时间:2013-05-23 10:27:55

标签: mongodb shell command-line

我一直在尝试在我的系统上运行mongo,但我只是不想开始。我用brew安装了mongodb。 mongo和mongod都在我的系统上,我可以使用它们。但是mongod进程不会开始。

这是我在使用brew在我的系统上安装mongo后所采取的步骤。

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

似乎mongod正在直接关闭,因为我没有看到任何进程正在运行,它再次给了我美元符号。因此,我的终端中没有旋转图标,因此它没有运行。

如果我在运行上述命令后在终端中打开一个新窗口,我收到此错误:

$ mongo
MongoDB shell version: 2.4.3
connecting to: test
Thu May 23 12:22:09.314 JavaScript execution failed: Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112
exception: connect failed
$ 

这个输出是一个逻辑错误,从事实上看,mongod没有做任何事情。但是当我运行时:

$ ps -ef | grep mongod
  501 99123 15827   0 12:24PM ttys001    0:00.00 grep mongod
$ 

所以我不确定或是否正在运行..你们知道解决方案吗?因为我无法弄清楚我做错了什么..

更新

我尝试更改数据库路径,但部分工作。我现在能够运行mongod命令,但是我需要指定dbPath,即使我在配置文件中更改了dbPath。

$ mongod --dbpath ~/data/db/

当我试图单独运行mongod时,它将无法运行..

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

2 个答案:

答案 0 :(得分:0)

我没有可行的解决方案,但是从你的输出中,似乎mongod正在运行守护进程。您可以尝试在 /usr/local/Cellar/mongodb/2.4.x-x86_64/mongod.conf 中将'fork'选项设置为false(或取消注释)并使用-v /运行mongod --verbose标志,看看是否能为您提供更多详细信息。

另外,你确定你实际上使用的是mongo的自制版本而不是之前安装的版本吗?你可以通过运行来检查使用哪个mongod:

➜  ~  which mongod
/usr/local/bin/mongod

以下是查看是否确实是使用自制软件安装的版本:

➜  ~  ls -l /usr/local/bin/mongod
lrwxr-xr-x  1 user  admin  41 21 mrt 22:06 /usr/local/bin/mongod -> ../Cellar/mongodb/2.4.x-x86_64/bin/mongod

答案 1 :(得分:0)

默认数据目录为/data/db。为了在默认情况下完成这项工作,您需要做两件事:

sudo mkdir -p /data/db
sudo chown `whoami` /data/db