MongoDB服务无法启动

3

我最近在Amazon Linux上安装了mongoDB,使用service命令可以启动mongod。

sudo service mongod start

以上操作都如预期一样。

今天我按照mongodb官网的说明,在Centos 7中安装了mongoDB。

现在当我使用与上述相同的命令启动服务时,服务无法启动。

我已经进行了以下检查,它们看起来是正确的,所以不确定出了什么问题。

  1. 数据文件夹路径即/data/db的所有者为mongod:mongod用户
  2. /etc/mongod.conf中的dbpath设置为/data/db
  3. /etc/init.d/mongod脚本中的用户设置为mongod:mongod

日志记录如下:

[centos@ip-172-31-16-240 init.d]$ sudo journalctl -xn
-- 日志从 UTC 时间 2015 年 3 月 26 日星期四 11:45:57 开始,到 UTC 时间 2015 年 3 月 26 日星期四 12:33:34 结束。--
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal mongod[1645]: ******>>>> mongod 用户是 mongod
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal runuser[1654]: pam_unix(runuser:session): 为用户 mongod 打开了会话 (uid=0)
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal runuser[1654]: pam_unix(runuser:session): 为用户 mongod 关闭了会话
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal mongod[1645]: 正在启动 mongod: [FAILED]
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal systemd[1]: mongod.service: 控制进程已退出,代码=exited status=1
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal systemd[1]: 无法启动 SYSV:Mongo 是一种可伸缩的面向文档的数据库。
-- 主题: Unit mongod.service 失败
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mongod.service 失败。
-- 
-- 结果为失败。
Mar 26 12:26:44 ip-172-31-16-240.ap-southeast-1.compute.internal systemd[1]: Unit mongod.service 进入失败状态。
Mar 26 12:26:49 ip-172-31-16-240.ap-southeast-1.compute.internal sudo[1660]: centos : TTY=pts/0 ; PWD=/etc/rc.d/init.d ; USER=root ; COMMAND=/bin/journalctl -xn
Mar 26 12:28:00 ip-172-31-16-240.ap-southeast-1.compute.internal sudo[1664]: centos : TTY=pts/1 ; PWD=/home/centos ; USER=root ; COMMAND=/bin/less /var/log/mongodb/mongod.log
Mar 26 12:33:34 ip-172-31-16-240.ap-southeast-1.compute.internal sudo[1668]: centos : TTY=pts/0 ; PWD=/etc/rc.d/init.d ; USER=root ; COMMAND=/bin/journalctl -xn
[centos@ip-172-31-16-240 init.d]$

然而,如果我使用sudo mongod,mongod进程将启动。

有什么想法,为什么service命令无效?


mongod日志文件中有什么?配置文件中的logPath会告诉你它的位置。 - wdberkeley
当我启动服务时,日志文件没有更新。但是如果我使用“sudo mongod”启动mongod,则日志文件包含启动详细信息。 - Sach
1个回答

3

如果有人遇到这个问题,这是我解决的方法。 毕竟,这与权限相关,而SELinux安全上下文默认设置为强制执行。

所以,在尝试启动mongod服务并失败后,运行此命令,如果有任何与权限相关的原因,它应该会显示给你。

sudo ausearch -m avc -ts today | audit2allow

以下是与mongod相关的审计信息的示例:
allow mongod_t default_t:file getattr;
以下是修复上述错误的步骤:
967 30/03/15 07:06:52 sudo chcon -Rv --type=mongod_var_lib_t /data
请注意,我的mongod数据文件位于/data/db。

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