MongoDB(mongodb.service)失败,状态14。

13

我在使用mongodb时遇到了以下问题。

当我检查状态时,出现以下错误:

错误截图 (mongodb.service, 状态 14)

mongod.config文件中的代码截图

日志文件的截图

我尝试按照网站上的每一步卸载mongodb,然后重新安装所有内容,但是当我检查状态时,仍然会出现相同的错误。我已经发布了错误的截图。 如果有人能帮我解决这个问题,我将不胜感激。


查看日志文件是否有任何内容。您可以在“/etc/mongod.conf”中找到日志文件路径。 - yaoxing
@yaoxing 是的,有的。我已经添加了另一个屏幕截图,显示文件中的代码,因为它太长了,无法在此处粘贴。 - Ivan C
你需要查看/var/log/mongodb/mongod.log文件,看看里面是否有任何有趣的内容。 - yaoxing
我已经附上日志文件的截图。 - Ivan C
8个回答

40

将/var/lib/mongodb和/tmp/mongodb-27017.lock的所有者更改为mongodb用户对我有效。

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

1
对于mongo4,请使用以下命令:sudo chown -R mongod:mongod /var/lib/mongo/ - vahid sabet
这个文件所有权修复是必要的,因为如果你按照[MongoDB教程][1]操作,你可能会从命令行启动mongod,这会改变数据目录中2个文件的所有权(首先修复@Roshan提到的问题)。在文件所有权更改后,除非您恢复文件所有权,否则无法使用配置文件将mongod作为服务启动(如本解决方案所述)。 [1] https://docs.mongodb.com/v4.0/tutorial/enable-authentication/ - Abel Wenning
我运行了上述命令,然后执行了 sudo systemctl enable --now mongodsudo systemctl status mongod,这对我起作用了! - Athif Saheer

35

从日志中看,您以前有一次非正常关机。或者,这也可能表明mongod已经在运行了。
首先,请确保mongod尚未在运行。

ps aux | grep mongod

如果不是,删除该文件:

rm /tmp/mongodb-27017.sock

然后尝试运行systemctl start mongod以重新启动MongoDB。


这是在CentOS 8上使用MongoDB v4.4.2运行mongod服务的解决方案。 - K8sN0v1c3
适用于Ubuntu 18.04和MongoDB v4.4.5。 - mridul2899
2
它适用于带有MongoDB 4.4.6的CentOS 7。非常感谢! - RezzDeWitt

2

在命令行中重新启动后,问题得到了解决。不知道为什么停止mongo并卸载和安装它后问题没有得到解决,但是重新启动后一切都正常了。


2

我曾经遇到过类似的问题,虽然权限都没问题,但服务始终无法启动。我查看了mongodb日志。

sudo tail -40 /var/log/mongodb/mongod.log

报告显示数据库意外关闭,需要修复。我运行了

sudo mongod --repair --config /etc/mongod.conf

这个修复了数据库,但是现在更改了权限。您需要再次执行 chown 步骤。

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

启动 mongod 服务。现在它应该已经运行起来了。


2

这对我在Ubuntu 18.04上起作用了

Go to the TMP directory: cd /tmp
Check if you have the mongodb sock file: ls *.sock
Change the user:group permission: chown mongodb:mongodb <YOUR_SOCK>
Start MongoDB: sudo service mongod start
Check the MongoDB status: sudo service mongod status

如果这个方法不行,你可以尝试:

sudo reboot

请看这里:https://medium.com/@gabrielpires/mongodb-ubuntu-16-04-code-exited-status-14-aws-lightsail-problem-417ffc78cb11,该文章与MongoDB在Ubuntu 16.04上运行时出现“Code Exited Status 14”错误有关。

1

CentOS Stream 8同样也发生了同样的情况。

mongodb服务的用户为mongo,组也为mongo

sudo chown mongod:mongod /tmp/mongodb-27017.sock

检查日志文件后解决了问题,显示mongodb-27017.sock启动失败。


0
chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
这段内容与编程有关,意思是将/var/lib/mongodb目录下的所有文件和子目录的所有者和所属组都改为mongodb:mongodb,同时将/tmp/mongodb-27017.sock文件的所有者和所属组也改为mongodb:mongodb。

0

我有类似的问题。SELinux 阻止了正常的执行。 因此,我做了以下操作:

# ausearch -c 'mongod' --raw | audit2allow -M my-mongod
# semodule -X 300 -i my-mongod.pp

然后:

$ sudo systemctl start mongod

并检查:

sudo systemctl status mongod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接