这里有新鲜出炉的 MongoDB 教程,程序狗速度看过来!
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 web 应用提供可扩展的高性能数据存储解决方案。
这篇文章主要介绍了 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 ~]$
总结
以上就是关于解决 Centos 7 上面 Mongodb 开机无法自启动的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对 PHPERZ 的支持。
来源: http://www.phperz.com/article/17/0522/332866.html