mongodb安装失败

我需要学习node.js和mongodb,这要求我使用我的mac osx,所以我是shell命令行界面的新手。

问题:当我按照mongodb网站上的指示安装了mongodb并尝试运行时,出现以下错误消息。 任何想法出了什么问题?

我做了什么:

  1. brew install mongodb
  2. sudo mkdir -p /data/db
  3. sudo chmod 0755 /data/db
  4. sudo chown mongod:mongod /data/db

错误: chown: mongod: Invalid argument

我接下来做了什么:

  1. mongod

错误:

 Mon Nov 21 18:55:08 [initandlisten] MongoDB starting : pid=28304 port=27017 dbpath=/data/db/ 64-bit host=MacBook-Air.local Mon Nov 21 18:55:08 [initandlisten] db version v2.0.1, pdfile version 4.5 Mon Nov 21 18:55:08 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684 Mon Nov 21 18:55:08 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 Mon Nov 21 18:55:08 [initandlisten] options: {} Mon Nov 21 18:55:08 [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 Mon Nov 21 18:55:08 dbexit: Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close listening sockets... Mon Nov 21 18:55:08 [initandlisten] shutdown: going to flush diaglog... Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close sockets... Mon Nov 21 18:55:08 [initandlisten] shutdown: waiting for fs preallocator... Mon Nov 21 18:55:08 [initandlisten] shutdown: lock for final commit... Mon Nov 21 18:55:08 [initandlisten] shutdown: final commit... Mon Nov 21 18:55:08 [initandlisten] shutdown: closing all files... Mon Nov 21 18:55:08 [initandlisten] closeAllFiles() finished Mon Nov 21 18:55:08 [initandlisten] shutdown: removing fs lock... Mon Nov 21 18:55:08 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor Mon Nov 21 18:55:08 dbexit: really exiting now 

做一个ls -ld /data/db给出:

 drwxr-xr-x 2 root wheel 68 Nov 21 18:46 /data/db 

Nyxynyx-

它看起来像一个文件权限问题。 你创build了/ data / db作为root用户,所以root是所有者,chown命令失败了(你的系统上是否已经有一个名为mongod的用户?如果没有,这个命令将失败),所有者仍然是root。 但是,然后以普通用户的身份运行mongod,所以无法在数据目录中创build任何locking文件。 你可以:

  1. 以root身份运行mongod
  2. 或者,创build一个mongod用户,并为mongod再次运行“chown”,然后以用户mongod的身份运行mongod
  3. 或者,将数据目录的所有权更改为当前用户帐户,然后将mongo作为用户帐户运行。

我有同样的问题,这是我很容易解决的问题:

我的数据库里充满了我不想要的垃圾,所以我通过terminal删除了我的/data/文件夹,并重新创build它:

 sudo mkdir /data/ 

我认为通过terminal创build根权限的文件夹是造成这个问题的原因。 相反,我只是再次删除它,然后我使用Finder去根文件夹。

右键单击>新build文件夹>input密码>重命名为数据>新build文件夹>重命名为数据库

然后我就像平常一样跑了mongod,它就起作用了!

我知道这是一个“虚拟”的做事方式,以避免所有的hax权限等,但它的工作!

您需要使用root用户运行mongod,只需运行以下命令

 sudo mongod 

你做了什么:

 1.`brew install mongodb`-fine 2.`sudo mkdir -p /data/db`-fine 3.`sudo chmod 0755 /data/db`-fine 4.`sudo chown mongod:mongod /data/db`-fine 

现在执行下一步:

./mongod --dbpath /data/db --port 27017

./mongo --port 27020