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

  前言

  首先下载的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 ~]$

(0)

相关推荐

  • win7下 VirtualBox虚拟机开机后台自启动

    win7下安装个linux虚拟机,学习下非常好. 但是每次使用linux的时候,都是打开virtualBox-->启动安装的linux系统-->再用远程桌面(SSH等)连接 每次手动打开比 ...

  • CentOS 7下怎么搭建高可用集群?

    CentOS 7下怎么搭建高可用集群。高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。那 ...

  • CentOS 7下systemd管理的详解

    CentOS 7下systemd管理的详解 CentOS系统启动流程: POST --> Boot Sequence --> Bootloader --> kernel + init ...

  • CentOS 7下配置ntp服务的方法

    对于校园网/企业用户,如果您网内所有计算机都通过互联网同步时间,在速度和精度上都有一定的折扣,并且对互联网出口带宽也有一定的影响,对于这类用户,我们建议通过自己搭建ntp服务为内部用户提供时间同步服务 ...

  • CentOS Linux下的3款分区工具详解

    伴随着科技的飞速发展,越来越多的企业对于服务器的稳定要求越来越高,越来越多的企业开始采用linux系统来部署自己的服务,以求高效的稳定性,当然任何操作系统都需要一个最基本的基础,那就是硬盘,及硬盘分区 ...

  • CentOS 7下FTP服务器的安装配置

    介绍下CentOS 7下FTP服务器的安装配置 操作方法 01 使用yum安装 vsftpd ftp 02 查看配置文件所在路径 03 备份vsftpd原有配置文件 04 创建密码明文文件 05 根据 ...

  • Centos服务器下一些基本要用到的命令

    注意:这里只是基本的操作.需要安装环境请参见:centos系统下LNMP环境一键安装 现在把这玩意发来,希望能和大家一起交流. kill -HUP `cat /usr/local/nginx/logs ...

  • centos 系统下安装配置FastDFS步骤分享

    centos 系统下安装配置FastDFS步骤: 1:安装libevent(libevent-2.0.16-stable) ##卸载系统自带libevent rpm -qa|grep libevent ...

  • Win8.1下默认开机需要输入密码那么如何跳过启动密码进入系统

    在Windows8之前的Windows系统开机都不需要通过输入密码登录,所以很多用户不习惯Win8.1系统下默认开机需要输入密码的方式,如何才能取消Win8.1系统的开机密码呢?下面我们跟随高手的脚步 ...