【发布时间】:2016-03-09 21:48:07
【问题描述】:
我正在尝试在 OSX 上运行 MongoDB,但遇到了一个常见问题,退出代码 1 出错。
这是我非常简单的 mongod.conf:
systemLog:
destination: file
logAppend: true
path: ~/Documents/test/mongodb/mongodb.log
storage:
directoryPerDB: true
dbPath: ~/Documents/test/mongodb/mongodb_data
journal:
enabled: true
processManagement:
fork: true # fork and run in background
net:
port: 27017
我 777 处理了所有文件夹,所以这不可能是权限问题(对吗?:P)
mac$ ls -lah ~/Documents/test/mongodb/
total 8
drwxr-xr-x 5 mac staff 170B Dec 4 15:34 .
drwxr-xr-x 11 mac staff 374B Dec 4 15:19 ..
-rwxrwxrwx 1 mac staff 301B Dec 4 15:21 mongod.conf
-rwxrwxrwx 1 mac staff 0B Dec 4 15:21 mongodb.log
drwxrwxrwx 2 mac staff 68B Dec 4 15:18 mongodb_data
但它仍然得到这个错误代码!
mac$ sudo mongod -f ~/Documents/test/mongodb/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 70062
ERROR: child process failed, exited with error number 1
我从其他问题中尝试过的事情:
- 显然我不应该将它作为 sudo (?) 运行,我尝试了 sudo 和没有 sudo,结果相同
- 可能是权限问题 (Starting mongod fails unless run as root) - mongodb_data 目录以及 conf 和日志都是 777,所以真的是这样吗?我也尝试过
chown,但没有效果。 - 删除 mongod.conf 中的 pid 位置(完成,没有任何效果)Starting mongod fork, ERROR: child process failed, exited with error number 1
还有:
- 多次启动尝试后,mongodb.log 中没有任何内容
- mongodb_data/ 中也没有任何内容(没有 .lock 文件或其他任何内容,只是空的)
有什么想法吗?
【问题讨论】:
-
下一步我会尝试在没有配置文件的情况下运行 mongod。运行“mongod --dbpath DB_PATH”,将 DB_PATH 替换为您的实际 dbpath。我也会使用绝对路径,而不是使用“~”作为日志和 dbpath 的基础。
-
将路径更改为绝对路径而不是相对路径没有任何效果。但是,从命令行调用整个事情似乎是这样的: sudo mongod --dbpath /Users/mac/Documents/test/mongodb/mongodb_data/ --fork --logpath /Users/mac/Documents/test/mongodb/ mongodb.log - 但为什么不使用 conf 文件?
标签: macos mongodb permissions