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

谢谢,大家好!


当前回答

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

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

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

其他回答

Mongodb在运行时,mongod会在设备的根文件夹中寻找~/data/db文件夹作为db的路径。

我通过运行mkdir ~/data创建一个~/data文件夹来解决这个问题

在根文件夹中,输入ls检查数据文件夹是否存在。然后导航到数据文件夹,再次检查pwd应该给你/Users/username/data

然后执行该命令创建“mongodb db”路径 sudo mongod——dbpath=/Users/username/data .使用实例

当我跑mongod的时候,这对我很有用

我只是想在这里指出,如果您尝试这样做,并且运行到mkdir: /data/db: Read-only文件系统,请参阅这个注释,它帮助了我:https://stackoverflow.com/a/58895373。

这样,如果有人在这个答案上,并控制F为“只读”,他们将看到这个

我在现有的Mongodb设置中遇到了这个问题。我仍然不确定为什么会发生这种情况,但出于某种原因,Mongod进程无法找到Mongod。配置文件。 因为它找不到配置文件,所以它试图在/data/ DB文件夹中找到DB文件,这个文件夹不存在。 然而,配置文件仍然可用,所以我确保该进程具有配置文件的权限,并使用——config标志运行mongod进程,如下所示:

mongod --config /etc/mongod.conf

在配置文件本身,我有这样的设置:

storage:
  dbPath: /var/lib/mongodb

这就是进程如何再次找到真正的DB文件夹。

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

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

service mongod start

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

service mongod status

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

sudo chown -R 126:135 /data/db 

我不得不使用:

sudo chown -R $USER /data/db