您现在的位置: 破洛洛 >> 服务器 >> Linux >> 正文

Centos 7下Mongodb开机无法自启动怎么办

作者:佚名 来源:网络整理 更新时间:2017-4-7
分享到

   前言

  首先下载的mongodb有bug,需要自己手动fix,这种只是对特定版本有问题,并非所有版本都有这个问题,

  SeLinux

  另外,一定要把selinux设置为disabled或者permissive

  问题描述

  sudo systemctl status mongod.service

  看到服务起不来,于是打开log文件:

  cat /var/log/mongodb/mongod.log

  有如下问题,是因为无法创建pid文件

  ***** SERVER RESTARTED *****

  ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory

  Centos7系统每次会把/var/run下面的一些项目清理,所以下次重起来的时候就没有了这个文件了,现在的systemd启动的话,没有什么好办法处理这个文件,因为systemd启动就是执行一个命令:

  /usr/bin/mongod --quiet -f /etc/mongod.conf run

  处理方案

  自己创建一个永久的文件路径,以及这个pid文件

  修改配置文件/etc/mongod.conf里面的pid路径,然后修改systemd条目的路径。

  具体操作

  1.创建文件,并修改权限

  [azuo1228@ecs-ee2fe26e /]$ sudo mkdir /mongod

  [azuo1228@ecs-ee2fe26e /]$ sudo touch /mongod/mongod.pid

  [azuo1228@ecs-ee2fe26e /]$ sudo chown -R mongod:mongod /mongod

  2.修改配置

  [azuo1228@ecs-ee2fe26e /]$ sudo vim /etc/mongod.conf

  把里面的:

  pidFilePath: /var/run/mongodb/mongod.pid

  修改为创建的文件:

  pidFilePath: /mongod/mongod.pid

  3.修改systemd条目

  [azuo1228@ecs-ee2fe26e ~]$ sudo vim /etc/systemd/system/multi-user.target.wants/mongod.service

  把里面的:

  PIDFile=/var/run/mongodb/mongod.pid

  修改为制定的文件的路径:

  PIDFile=/mongod/mongod.pid

  4. reload systemd

  [azuo1228@ecs-ee2fe26e ~]$ sudo systemctl daemon-reload

  5. 启动mongod或者重起电脑

  [azuo1228@ecs-ee2fe26e ~]$ sudo service mongod start

  6.查看状态

  [azuo1228@ecs-ee2fe26e ~]$ sudo systemctl status mongod.service

  NOTE 1:

  mongodb安装更新之后,mongo.conf不会更新,但是,会更新

  /etc/systemd/system/multi-user.target.wants/mongod.service

  ,装一个新的

  /etc/systemd/system/multi-user.target.wants/mongod.service

  所以,也会起不来。

  如果有按照上面设置过conf文件,也需要再次修改这个systemd文件。

  NOTE 2:

  更新的mongodb 3.4.1,已经修正了这个问题

  [azuo1228@Server ~]$ sudo rpm -qa | grep mongo

  mongodb-org-3.4.1-1.el7.x86_64

  mongodb-org-shell-3.4.1-1.el7.x86_64

  mongodb-org-tools-3.4.1-1.el7.x86_64

  mongodb-org-mongos-3.4.1-1.el7.x86_64

  mongodb-org-server-3.4.1-1.el7.x86_64

  [azuo1228@Server ~]$

转载请注明:破洛洛(谢谢合作)
网友评论: