安装并运行MongoDB

安装并运行MongoDB,mongodb,Mongodb,我正在OSX上使用MongoDB。我跟着一本书走 MongoDB:权威指南,第二版 我已经安装并运行了MongoDB。我制作了一些集合,其中包含一些值 我使用自制软件安装 当我在终端中运行mongo时,我的shell启动,我可以很好地使用它 当我运行mongod时,我得到一个错误,指出没有数据/db目录。我知道这是因为mongo存储数据的默认位置在该目录中,但是homebrew设置了自己的路径 当我跑的时候 Home:~ ThisIsMe$ mongo MongoDB shell version

我正在OSX上使用MongoDB。我跟着一本书走

MongoDB:权威指南,第二版

我已经安装并运行了
MongoDB
。我制作了一些
集合
,其中包含一些

我使用
自制软件安装

当我在终端中运行
mongo
时,我的shell启动,我可以很好地使用它

当我运行
mongod
时,我得到一个错误,指出没有数据/db目录。我知道这是因为
mongo
存储数据的默认位置在该目录中,但是
homebrew
设置了自己的路径

当我跑的时候

Home:~ ThisIsMe$ mongo
MongoDB shell version: 2.6.3
connecting to: test
> db.serverCmdLineOpts()
{
    "argv" : [
        "/usr/local/opt/mongodb/bin/mongod",
        "--config",
        "/usr/local/etc/mongod.conf"
    ],
    "parsed" : {
        "config" : "/usr/local/etc/mongod.conf",
        "net" : {
            "bindIp" : "127.0.0.1"
        },
        "storage" : {
            "dbPath" : "/usr/local/var/mongodb"
        },
        "systemLog" : {
            "destination" : "file",
            "logAppend" : true,
            "path" : "/usr/local/var/log/mongodb/mongo.log"
        }
    },
    "ok" : 1
}
> 
我在
homebrew
中设置mongo的文件路径

我想确保一切都设置正确。我是否需要添加其他内容才能在没有错误的情况下运行
mongod
?我的印象是我应该能够运行
mongod
然后转到
http://localhost:28017/
查看有关我的mongo的信息

但是如果没有关于data/db的错误,我无法让mongod运行

Home:~ ThisIsMe$ mongod
mongod --help for help and startup options
2014-07-24T13:09:07.817-0500 [initandlisten] MongoDB starting : pid=1668 port=27017 dbpath=/data/db 64-bit host=NichoDiaz
2014-07-24T13:09:07.817-0500 [initandlisten] 
2014-07-24T13:09:07.817-0500 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2014-07-24T13:09:07.817-0500 [initandlisten] db version v2.6.3
2014-07-24T13:09:07.817-0500 [initandlisten] git version: nogitversion
2014-07-24T13:09:07.817-0500 [initandlisten] build info: Darwin minimavericks.local 13.2.0 Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2014-07-24T13:09:07.818-0500 [initandlisten] allocator: tcmalloc
2014-07-24T13:09:07.818-0500 [initandlisten] options: {}
2014-07-24T13:09:07.818-0500 [initandlisten] exception in initAndListen: 10296 
*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
2014-07-24T13:09:07.818-0500 [initandlisten] dbexit: 
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: going to close listening sockets...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: going to flush diaglog...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: going to close sockets...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: waiting for fs preallocator...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: lock for final commit...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: final commit...
2014-07-24T13:09:07.818-0500 [initandlisten] shutdown: closing all files...
2014-07-24T13:09:07.818-0500 [initandlisten] closeAllFiles() finished
2014-07-24T13:09:07.818-0500 [initandlisten] dbexit: really exiting now
Home:~ ThisIsMe$ 

它在错误消息中:

ERROR: dbpath (/data/db) does not exist. 
Create this directory or give existing directory in --dbpath.

您需要创建/data和/data/db目录,并确保运行mongod的用户可以写入这两个目录。这就是mongod编写数据库数据的地方。它不是默认创建的。或者,您可以在其他位置创建数据目录,然后使用--dbpath将其传入。

创建dir data和data/db有什么区别,因为dir db似乎在任何地方都不需要,但如果没有数据,它会抱怨它。这只是默认的目录布局-/data,然后是db目录在它下面,您可以创建任何您想要的结构,但是如果它不是/data/db,您需要使用--dbpath让mongodb知道,只要我这样做,mongod--dbpath data就可以正常工作。它不会让我添加db。但是当我每次运行时都没有指定路径时,表示我需要数据/dbYes,这是因为这是默认值-默认的dbpath是/data/db-如果不设置-dbpath,它每次都会查找它。