前言
首先下載的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開機無法自啟動的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。