MongoDB 加载但中断,返回状态=14

use*_*962 61 mongodb

所以我试图在 Ubuntu 16.04 上设置 Mongodb,但我遇到了麻烦。

运行时:

sudo systemctl status mongodb
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

 mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2016-09-10 14:02:22 CEST; 14s ago
     Docs: https://docs.mongodb.org/manual
  Process: 8724 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (code=exited, status=14)
 Main PID: 8724 (code=exited, status=14)
Run Code Online (Sandbox Code Playgroud)

根据 mongo-docs, status=14 是:

"Returned by MongoDB applications which encounter an unrecoverable error, an uncaught exception or uncaught signal. The system exits without performing a clean shut down."
Run Code Online (Sandbox Code Playgroud)

我并没有真正指出任何特定的方向。

我的/etc/systemd/system/mongodb.service看起来像这样:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

关于可能是什么原因的任何想法?

谢谢

小智 124

在谷歌搜索了一段时间后。我发现这是因为 /var/lib/mongodb 和 /tmp/mongodb-27017.lock 上的权限设置错误。您必须将所有者更改为 monogdb 用户

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)

  • +1 用于查找未记录的`chown mongodb:mongodb /tmp/mongodb-27017.sock`... (11认同)
  • 我昨天就因为这个而输了。你应该有良好的谷歌搜索技巧:) (4认同)
  • +1 为 `chown -R mongodb:mongodb /var/lib/mongodb` (2认同)

小智 10

通过使用这个我的错误消失了:

  1. 进入TMP目录:cd /tmp
  2. 检查你是否有 mongodb sock 文件: ls *.sock
  3. 更改用户:组权限: chown mongodb:mongodb <YOUR_SOCK>
  4. 启动MongoDB: sudo service mongod start
  5. 检查 MongoDB 状态: sudo service mongod status


小智 5

  1. 检查两个提到的目录,如果它们不存在,请使用以下命令:
sudo mkdir /var/lib/mongodb
sudo mkdir /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
Run Code Online (Sandbox Code Playgroud)
  1. 使用以下命令清除套接字:
chown mongodb:mongodb /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
  1. 重启并检查服务状态:
sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)


小智 5

删除 mongod sock 文件为我解决了问题,sudo rm -rf /tmp/mongodb-27017.sock 然后重新开始sudo systemctl start mongod