无法在OSX上启动MongoDB

时间:2015-12-04 20:49:28

标签: macos mongodb permissions

我正在尝试在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

我从其他问题尝试过的事情:

  1. 显然我不应该把它作为sudo(?)运行,我已经尝试了sudo和没有sudo,结果相同
  2. 可能是权限问题(Starting mongod fails unless run as root) - mongodb_data目录以及conf和日志都是777,那么真的是这样吗?我对所有这些都尝试chown但没有效果。
  3. 删除mongod.conf中的pid位置(已完成,没有任何效果)Starting mongod fork, ERROR: child process failed, exited with error number 1
  4. 此外:

    • mongodb.log在多次启动尝试后没有任何内容
    • mongodb_data /也没有任何东西(没有.lock文件或其他什么,只是空的)

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能是日志文件的错误。奇怪的是你的是0字节。 无论如何你不需要发出777权限,你不需要在OSX系统上运行带有sudo的mongod。 尝试执行以下操作:

  1. mkdir~ / sometest
  2. cd~ / sometest
  3. cp~ / Documents / test / mongodb / mongod.conf。
  4. 将systemLog路径替换为mongodb.log,将dbpath替换为数据
  5. mkdir数据
  6. 启动mongod(mongod -f mongod.conf)