我需要学习node.js和mongodb,这需要我使用我的mac osx,所以我是shell命令行界面的新手。
问题:当我按照mongodb网站上的说明并安装了mongodb并尝试运行时,我收到以下错误消息。知道出了什么问题吗?
我做了什么:
brew install mongodb
sudo mkdir -p /data/db
sudo chmod 0755 /data/db
sudo chown mongod:mongod /data/db
错误: chown: mongod: Invalid argument
我接下来做了什么:
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
答案 0 :(得分:1)
Nyxynyx-
它看起来像文件权限问题。您以root用户身份创建了/ data / db,因此root是所有者,而chown命令失败了(您的系统上是否有一个名为mongod的用户?如果没有,该命令将失败)所以所有者仍然是root用户。但是你以正常用户身份运行mongod,因此无法在数据目录中创建任何锁定文件。 你可以:
答案 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
强>