在 Mac OSX 上运行 MongoDB 时遇到问题

Posted

技术标签:

【中文标题】在 Mac OSX 上运行 MongoDB 时遇到问题【英文标题】:Trouble Running MongoDB on Mac OSX 【发布时间】:2015-02-01 19:46:49 【问题描述】:

所以我已经在我的 macbook 上成功安装了 mongodb。当我运行“brew install mongodb”命令行时,我说这个 bc 说:“已经安装了 mongodb-2.6.7。我运行了命令 'mkdir -p /data/db' 虽然我无法真正理解它所做的事情(我已经尝试过 SO 和 Mongo 站点上的其他一些线程,但不明白如何解决问题;对不起,我有点笨,不太了解这个问题)。但是,当我输入 mongod 以查看它是否成功运行时,我收到以下错误/输出

2015-02-01T14:37:30.575-0500 [initandlisten] MongoDB starting : pid=41932 port=27017 dbpath=/data/db 64-bit host=[removed]-mbp.home
2015-02-01T14:37:30.575-0500 [initandlisten] 
2015-02-01T14:37:30.575-0500 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2015-02-01T14:37:30.575-0500 [initandlisten] db version v2.6.7
2015-02-01T14:37:30.575-0500 [initandlisten] git version: nogitversion
2015-02-01T14:37:30.575-0500 [initandlisten] build info: Darwin minimavericks.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2015-02-01T14:37:30.575-0500 [initandlisten] allocator: tcmalloc
2015-02-01T14:37:30.575-0500 [initandlisten] options: 
2015-02-01T14:37:30.577-0500 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2015-02-01T14:37:30.577-0500 [initandlisten] dbexit: 
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: going to close listening sockets...
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: going to flush diaglog...
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: going to close sockets...
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: waiting for fs preallocator...
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: lock for final commit...
2015-02-01T14:37:30.577-0500 [initandlisten] shutdown: final commit...
2015-02-01T14:37:30.578-0500 [initandlisten] shutdown: closing all files...
2015-02-01T14:37:30.578-0500 [initandlisten] closeAllFiles() finished
2015-02-01T14:37:30.578-0500 [initandlisten] shutdown: removing fs lock...
2015-02-01T14:37:30.578-0500 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
2015-02-01T14:37:30.578-0500 [initandlisten] dbexit: really exiting now

列出的问题之一是“软 rlimits 太低”,但我的理解是,因为我这样做只是为了开发而不是生产目的,这是无关紧要的。有人可以建议如何解决此错误吗?这是一个类似的线程,但我不确定该怎么做:

Trouble installing mongodb using Homebrew

运行 sudo chown $USER /data/db 我现在得到:

mongod --help for help and startup options
2015-02-01T15:48:06.940-0500 [initandlisten] MongoDB starting : pid=43297 port=27017 dbpath=/data/db 64-bit host=shus-mbp.home
2015-02-01T15:48:06.941-0500 [initandlisten] 
2015-02-01T15:48:06.941-0500 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2015-02-01T15:48:06.941-0500 [initandlisten] db version v2.6.7
2015-02-01T15:48:06.941-0500 [initandlisten] git version: nogitversion
2015-02-01T15:48:06.941-0500 [initandlisten] build info: Darwin minimavericks.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2015-02-01T15:48:06.941-0500 [initandlisten] allocator: tcmalloc
2015-02-01T15:48:06.941-0500 [initandlisten] options: 
2015-02-01T15:48:06.949-0500 [initandlisten] journal dir=/data/db/journal
2015-02-01T15:48:06.950-0500 [initandlisten] recover : no journal files present, no recovery needed
2015-02-01T15:48:06.972-0500 [initandlisten] allocating new ns file /data/db/local.ns, filling with zeroes...
2015-02-01T15:48:07.025-0500 [FileAllocator] allocating new datafile /data/db/local.0, filling with zeroes...
2015-02-01T15:48:07.025-0500 [FileAllocator] creating directory /data/db/_tmp
2015-02-01T15:48:07.125-0500 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB,  took 0.099 secs
2015-02-01T15:48:07.154-0500 [initandlisten] build index on: local.startup_log properties:  v: 1, key:  _id: 1 , name: "_id_", ns: "local.startup_log" 
2015-02-01T15:48:07.165-0500 [initandlisten]     added index to empty collection
2015-02-01T15:48:07.165-0500 [initandlisten] command local.$cmd command: create  create: "startup_log", size: 10485760, capped: true  ntoreturn:1 keyUpdates:0 numYields:0  reslen:37 193ms
2015-02-01T15:48:07.165-0500 [initandlisten] waiting for connections on port 27017
2015-02-01T15:49:06.978-0500 [clientcursormon] mem (MB) res:34 virt:2637
2015-02-01T15:49:06.978-0500 [clientcursormon]  mapped (incl journal view):160
2015-02-01T15:49:06.978-0500 [clientcursormon]  connections:0

这是否意味着它现在可以工作了?

【问题讨论】:

mkdir 只是创建一个目录(如果你真的很努力地把它读成一个词,你几乎可以猜到它)。 -p 标志只是说“如果父目录不存在,则创建父目录。” 嗨-谢谢。看起来这是根据输出有错误的部分。你知道我应该怎么做才能解决这个问题吗? 当我运行 ls -l /data 我得到 'drwxr-xr-x' 而当我运行 ls-ld /data/db 我也得到 'drwxr-xr-x' 可能是权限问题。我会查看this answer。 嗨 - 我看到了那个答案并运行了“sudo chown $USER /data/db”。我添加到答案中的内容是否有意义,是否意味着它现在正在工作?在底部它说连接:0 所以我不知道这是否是一个问题 【参考方案1】:

是的,这是有效的。当你运行 'mongod' 并看到这个 'waiting for connections on port 27017' 时,你的 mongodb 运行良好,你可以开始查询了。

【讨论】:

以上是关于在 Mac OSX 上运行 MongoDB 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX 平台安装 MongoDB

在 OSX Mojave 上安装 DateTime 时遇到问题

phpmyadmin 在初始安装时无法登录(mac osx)

如何在mac OS X下安装Mongodb

如何在 Mac OSX 终端中更改主要 python 版本

在 Mac OSX 上安装 flite 时出错