Centos 7下Mongodb开机无法自启动的解决方法
前言
首先下载的mongodb有bug,需要自己手动fix,这种只是对特定版本有问题,并非所有版本都有这个问题,
SeLinux
另外,一定要把selinux设置为disabled或者permissive
问题描述
sudosystemctlstatusmongod.service
看到服务起不来,于是打开log文件:
cat/var/log/mongodb/mongod.log
有如下问题,是因为无法创建pid文件
*****SERVERRESTARTED***** ERROR:Cannotwritepidfileto/var/run/mongodb/mongod.pid:Nosuchfileordirectory
Centos7系统每次会把/var/run下面的一些项目清理,所以下次重起来的时候就没有了这个文件了,现在的systemd启动的话,没有什么好办法处理这个文件,因为systemd启动就是执行一个命令:
/usr/bin/mongod--quiet-f/etc/mongod.confrun
处理方案
自己创建一个永久的文件路径,以及这个pid文件
修改配置文件/etc/mongod.conf里面的pid路径,然后修改systemd条目的路径。
具体操作
1.创建文件,并修改权限
[azuo1228@ecs-ee2fe26e/]$sudomkdir/mongod [azuo1228@ecs-ee2fe26e/]$sudotouch/mongod/mongod.pid [azuo1228@ecs-ee2fe26e/]$sudochown-Rmongod:mongod/mongod
2.修改配置
[azuo1228@ecs-ee2fe26e/]$sudovim/etc/mongod.conf
把里面的:
pidFilePath:/var/run/mongodb/mongod.pid
修改为创建的文件:
pidFilePath:/mongod/mongod.pid
3.修改systemd条目
[azuo1228@ecs-ee2fe26e~]$sudovim/etc/systemd/system/multi-user.target.wants/mongod.service
把里面的:
PIDFile=/var/run/mongodb/mongod.pid
修改为制定的文件的路径:
PIDFile=/mongod/mongod.pid
4.reloadsystemd
[azuo1228@ecs-ee2fe26e~]$sudosystemctldaemon-reload
5.启动mongod或者重起电脑
[azuo1228@ecs-ee2fe26e~]$sudoservicemongodstart
6.查看状态
[azuo1228@ecs-ee2fe26e~]$sudosystemctlstatusmongod.service
NOTE1:
mongodb安装更新之后,mongo.conf不会更新,但是,会更新
/etc/systemd/system/multi-user.target.wants/mongod.service
,装一个新的
/etc/systemd/system/multi-user.target.wants/mongod.service
所以,也会起不来。
如果有按照上面设置过conf文件,也需要再次修改这个systemd文件。
NOTE2:
更新的mongodb3.4.1,已经修正了这个问题
[azuo1228@Server~]$sudorpm-qa|grepmongo 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~]$
总结
以上就是关于解决Centos7上面Mongodb开机无法自启动的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。