今天我第一次用我的新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

谢谢,大家好!


当前回答

有一个非常愚蠢的方法来制造这个问题,这是我首创的:

1)让你的mongo安装一段时间 2)返回时服务器没有运行 3)尝试启动,但这次不要使用sudo 4) mongo找不到data/db/,因为现在它在用户的home目录而不是su home目录

是的,这真的很愚蠢,但如果你已经在系统上一段时间了,它可以绊倒你。

简单的回答:确保您使用相同的隐含主目录运行mongo

其他回答

从MongoDB 4.4开始,MongoDB数据库工具现在与MongoDB服务器分开发布。

您需要下载:https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools

然后将所有文件复制到/usr/bin 所有的命令行都是可用的。

如果你使用Mac并运行Catalina和通过Homebrew安装Mongodb,你要做的就是输入这个命令,你就可以开始了。

brew services start mongodb-community

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

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

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

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

Tilo给出的答案在此之前一直适用于我:

sudo chown -R 126:135 /data/db 

我不得不使用:

sudo chown -R $USER /data/db

如果你不带参数运行mongo,它会假设你在生产机上运行,所以它会使用默认位置。

使用您自己的数据库(开发或只是一个不同的):

./bin/mongod --dbpath ~/data/db