Answers:
只是缺少systemd的服务文件。无需像Kartik那样回到暴发户,也无需使用https://docs.mongodb.org/manual/installation/中所述的其他存储库。
创建一个/lib/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/mongodb.conf
[Install]
WantedBy=multi-user.target
sudo service...
由于权限问题而默默地失败了
/etc/mongod.conf
而不是调用默认配置文件/etc/mongodb.conf
mongod
因为这是他们在其官方网站上使用的名称。所以,mongodb.conf
应该是mongod.conf
和文件名应该是/lib/systemd/system/mongod.service
发生此错误是由于新的Ubuntu(15及更高版本)存在问题。
默认的初始化系统是systemd,之前是Upstart。因此,您需要安装Upstart,重新启动系统,然后就可以运行mongodb服务了。
sudo apt-get install upstart-sysv
sudo service mongod start
mongod start/running, process 3371
mongodb
我在Ubuntu 15.10中使用了Debian软件包
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
升级到15.10后,我遇到了类似的问题。
可能会有很多问题,但是根据导致问题的原因,您也许可以通过init.d使mongodb运行:
sudo /etc/init.d/mongodb start
这对我有用,但不是长期解决方案,因为您需要在每次重新启动后运行它,或者将其添加到启动任务中。所以我遵循以下内容:
1)按照“ sclausen”的说明创建服务文件。
2)通过运行以下命令重新加载服务:
sudo systemctl daemon-reload
3)跑了 sudo service mongodb start
4)该命令没有输出。所以我通过运行进行测试,mongo
并得到一个套接字错误:
Error: connect ECONNREFUSED 127.0.0.1:27017
at Object.exports._errnoException (util.js:870:11)
at exports._exceptionWithHostPort (util.js:893:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1062:14)
5)浏览日志tail -n 50 /var/log/mongodb/
,发现潜在的错误:
2016-02-26T14:28:23.538+1100 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
6)删除有问题的套接字文件: sudo rm /tmp/mongodb-27017.sock
如该线程上所建议:https : //stackoverflow.com/questions/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0
7)重新运行服务: sudo service mongodb start
那时一切都很好,鲍勃回到了我叔叔的正当位置。
就我而言,我有Ubuntu 16.04.1,正在安装MongoDB 3.2.11,并且遇到了同样的错误。经过几次清理和重试之后,它终于可以“启用”该服务:
systemctl enable mongod.service
然后就可以了