今天我第一次用我的新mac电脑。我遵循mongodb.org上的入门指南,直到创建/data/db目录的步骤。顺便说一句,我用的是自制路线。

所以我打开一个终端,我认为我在你所谓的主目录,因为当我按“ls”时,我看到桌面应用程序、电影、音乐、图片、文档和库的文件夹。

所以我做了一个

mkdir -p /data/db

首先,它说许可被拒绝。我不停地尝试了半个小时,最后:

mkdir -p data/db

工作。当我“ls”,一个目录的数据和嵌套在其中的db文件夹确实存在。

然后我启动mongod,它抱怨找不到data/db

我做错什么了吗?

现在我已经完成了

sudo mkdir -p /data/db

当我执行“ls”时,我确实看到了data dir和db dir。在db目录下,什么都没有,当我运行mongod

Sun Oct 30 19:35:19 [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
Sun Oct 30 19:35:19 dbexit: 
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now

编辑 获取错误消息

sudo chown mongod:mongod /data/db

chown: mongod: Invalid argument

谢谢,大家好!


当前回答

在终端上输入“id”查看可用的用户id, 然后简单地输入

"sudo chown -R idname /data/db"

这对我来说很有效! 希望这能解决你的问题。

其他回答

你需要创建/data/db…在你的根目录(即/)中有一个名为/data/的目录,其中的子文件夹名为/db/…

你得到权限错误,因为你需要使用sudo在MacOS的根目录中创建一个目录,sudo让你以管理员身份运行命令。

所以,运行这个…

$ sudo mkdir -p /data/db

这将提示您输入密码,这是您用来更改系统设置的相同密码(当您尝试在ecample的system Preferences中更改内容时打开的小对话框),可能与您用于登录的密码相同。

在(重新)安装工具包后,我在一台Windows 10设备上得到了类似的错误;

initAndListen: NonExistentPath: Data目录C:\ Data \db\ not found。,终止

解决方案 类似于linux系统的解释:简单地创建文件夹就足以启动mongo .exe (mongoDB服务器)。

我想我可以把它留给那些在Windows设备上使用相同搜索词的人。

到目前为止,我也曾经认为我们需要创建/data/db文件夹来启动mongod命令。

但是最近我尝试用service命令启动mongod,它为我工作,不需要创建/data/db目录。

service mongod start

可以使用如下命令查看mongod的状态。

service mongod status

当我试图启动mongodb时,我一直得到以下错误。

"shutting down with code:100" 

我正在使用以下命令:

./mongod --dbpath=~/mongo-data

对我来说,修复是我不需要“=”符号,这导致了错误。所以我做了

./mongod --dbpath ~/mongo-data

我只是想把这个抛到一边因为这个错误并不能说明这就是问题所在。我几乎删除了~/mongo-data目录的内容,看看是否有帮助。很高兴我记得cli参数有时不使用“=”符号。

通过使用窗口管理器创建/data/db文件夹,我解决了这个完全相同的问题。我一开始尝试通过终端来做,为了在根目录中创建一个文件夹,我必须使用sudo。

我用Finder找到了根目录,然后用“new folder”创建了一个新文件夹。对我来说完全管用。

注意:我使用的是OSX。