mongodb安装失败

时间:2011-11-21 23:57:30

标签: bash mongodb node.js

我需要学习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
  5. 错误: chown: mongod: Invalid argument

    我接下来做了什么:

    1. mongod
    2. 错误:

      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
      

4 个答案:

答案 0 :(得分:1)

Nyxynyx-

它看起来像文件权限问题。您以root用户身份创建了/ data / db,因此root是所有者,而chown命令失败了(您的系统上是否有一个名为mongod的用户?如果没有,该命令将失败)所以所有者仍然是root用户。但是你以正常用户身份运行mongod,因此无法在数据目录中创建任何锁定文件。 你可以:

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

答案 1 :(得分:0)

我遇到了同样的问题,这就是我如何轻松修复它的问题:

我的数据库中充斥着我不想要的垃圾,所以我通过终端删除了我的/data/文件夹并重新创建了它:

sudo mkdir /data/

我认为通过终端创建具有root访问权限的文件夹是导致问题的原因。相反,我只是将其全部删除,然后使用Finder转到根文件夹。

右键单击>新文件夹>输入密码>重命名为数据>新文件夹>重命名为db

然后我就像往常一样运行mongod,它有效!

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

答案 2 :(得分:0)

你需要与root用户一起运行mongod,只需运行以下命令

sudo mongod

答案 3 :(得分:0)

你做了什么:

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