因此我尝试在 Ubuntu 16.04 上设置 Mongodb,但遇到了麻烦。
运行时:
sudo systemctl status mongodb
我得到以下信息:
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)
根据 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."
我并没有真正指出任何特定的方向。
我的/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
有什么想法可以解释造成这种情况的原因吗?
谢谢
答案1
在谷歌上搜索了一段时间后,我发现这是因为
/var/lib/mongodb
和上的权限设置/tmp/mongodb-27017.lock
错误。您必须将所有者更改为 monogdb 用户
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
然后
sudo service mongod restart
答案2
通过使用这个我的错误就消失了:
- 进入
TMP
目录:cd /tmp
- 检查您是否有 mongodb sock 文件:
ls *.sock
- 更改用户:组权限:
chown mongodb:mongodb <YOUR_SOCK>
- 启动MongoDB:
sudo service mongod start
- 检查 MongoDB 状态:
sudo service mongod status
答案3
删除 mongod sock 文件解决了我的问题sudo rm -rf /tmp/mongodb-27017.sock
然后重新开始sudo systemctl start mongod
答案4
我尝试了这个并且成功了:
sudo nano /etc/mongod.conf
注释“bind ip”行。
sudo mongod --auth --port 27017 --dbpath /data/db
然后我跑了
sudo service mongod restart