【发布时间】:2011-10-30 23:56:54
【问题描述】:
我今天第一次使用我的新 Mac。我一直在关注 mongodb.org 上的入门指南,直到创建 /data/db 目录的步骤。顺便说一句,我使用了自制路线。
所以我打开一个终端,我想我在你所说的主目录中,因为当我执行“ls”时,我会看到桌面应用程序电影音乐图片文档和库的文件夹。
所以我做了一个
mkdir -p /data/db
首先,它说权限被拒绝。我一直在尝试不同的东西半个小时,最后:
mkdir -p data/db
工作。当我“ls”时,确实存在一个数据目录并嵌套在其中一个db文件夹。
然后我启动了 mongod,它抱怨找不到数据/db
我做错了吗?
现在我已经完成了
sudo mkdir -p /data/db
当我执行“ls”时,我确实看到了数据目录和数据库目录。但是在 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
谢谢大家!
【问题讨论】:
-
“无效参数”意味着 mongo 用户的符号名称在您的系统上是不同的——您可能使用不同的包或安装机制来安装 MongoDB。您应该检查 /etc/passwd 和 /etc/group 文件中的 mongo 用户
grep mongo /etc/passwd /etc/group的符号名称(或 uid/gid)。如果这不起作用,请通过检查目录ls -ld /var/lib/mongo的所有者来检查名称。或查看 uid/gid 执行此操作:ls -lnd /var/lib/mongo。在我的情况下drwxr-xr-x. 6 *487 480* 4096 Sep 20 2011 ...- 这意味着使用 487:480 作为参数 -
使用 UID/GID 与使用符号名称同义。例如只需将 'mongod:mongod 替换为您使用上述方法找到的 uid/gid 数字即可。
-
既然我们知道如何正确添加这个目录(data/db),为什么一开始没有把这个目录包含在安装中?
-
如果您刚刚升级到 MacOS 10.15,这个答案可能会有所帮助:stackoverflow.com/questions/58283257/…
-
如果您有最新版本的MAC:随着新的macOS Catalina更新,文件夹“/data/db”变为只读,您无法修改它。按照此过程在另一个文件夹中创建数据库:1)更改 mongod 目录:sudo mongod --dbpath /System/Volumes/Data/data/db 2)给它一个别名:alias mongod="sudo mongod --dbpath/System /Volumes/Data/data/db"