MongoDB 3.2.9无法在CentOS上作为服务启动

时间:2016-09-21 12:04:30

标签: mongodb centos centos7

我正在尝试在CentOS上启动mongod作为服务:

mongod --version
db version v3.2.9
git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel70
    distarch: x86_64
    target_arch: x86_64

CentOS Linux release 7.2.1511 (Core) 

的/ etc / selinux的/配置:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

mongod.conf:

systemLog:
   destination: file
   path: "/mnt/log/mongod.log"
   logAppend: true
storage:
   dbPath: "/mnt/data"
   engine: wiredTiger
   journal:
      enabled: true
processManagement:
   fork: true
   pidFilePath: "/var/run/mongodb/mongod.pid"
net:
   # bindIp: 127.0.0.1
   port: 27017
replication:
   replSetName: XXXX
security:
   keyFile: "/usr/mongodb/mongodb-keyfile"

问题陈述:

Starting mongod (via systemctl):  Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
                                                           [FAILED]

journalctl -xe
...
Sep 20 13:10:55 ip-10-0-231-19.localdomain systemd[1]: Unit mongod.service entered failed state.
Sep 20 13:10:55 ip-10-0-231-19.localdomain systemd[1]: mongod.service failed.
Sep 20 13:10:55 ip-10-0-231-19.localdomain polkitd[9717]: Unregistered Authentication Agent for unix-process:26567:1630816 (system bus name :1.27, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Sep 20 13:11:04 ip-10-0-231-19.localdomain sudo[26587]:   centos : TTY=pts/1 ; PWD=/home/centos ; USER=root ; COMMAND=/bin/vi /etc/mongod.conf

服务器开始使用:

sudo mongod -f /etc/mongod.conf

我知道有关类似问题的错误已经打开,但修复程序可能已经在3.2.7中提供,此外它与SELINUX =强制执行时的情况有关...

请支持。

2 个答案:

答案 0 :(得分:0)

最近遇到过类似的问题,但是在FC26上;在这里,问题可以追溯到SELINUX,特别是自定义dbPath目录的权限。

在尝试了很多事情后,我发现以下序列有助于解决我的问题:

MONGODB_DATADIR=/mnt/data

sudo chown -R mongodb:mongodb $MONGODB_DATADIR
sudo chmod -R 700 $MONGODB_DATADIR

SELinux设置:

sudo semanage port -a -t mongod_port_t -p tcp 27017

sudo semanage fcontext -a -t mongod_var_lib_t ${MONGODB_DATADIR}
sudo semanage fcontext -a -t mongod_var_lib_t ${MONGODB_DATADIR}/mongod.lock
sudo restorecon -v ${MONGODB_DATADIR}

您可能还需要将mongod_log_t添加到自定义日志文件位置/mnt/log/mongod.log,我没有修改那个。{/ p>

答案 1 :(得分:0)

实际上,对我而言,解决方法是:

sudo chown -R mongod:mongod $MONGODB_DATADIR