mongodb運行的二三事
1:包安裝mongodb
配置mongodb源後,進行安裝:
yum install -y mongodb-org
或者:
yum install -y mongodb-org-4.2.8 mongodb-org-server-4.2.8 mongodb-org-shell-4.2.8 mongodb-org-mongos-4.2.8 mongodb-org-tools-4.2.8
爲避免yum更新的時候,mongodb也升級,可以配置/etc/yum.conf:
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
2:mongodb如何運行
使用Linux發行版的Init System管理mongodb的進程管理,可以採用systemd或System V init,通過以下命令得知:
ps --no-headers -o comm 1
CentOS7採用systemd:
systemctl start mongod systemctl status mongod #確保重啓啓動的時候自運行mongodb systemctl enable mongod
3:systemctl運行失敗問題
遇到不能啓動的問題,通過兩種方式排查問題。
(1)查看systemctl日誌
systemctl status mongod.service
如下錯誤:
ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14) ERROR: child process failed, exited with error number 14
(2)查看mongodb啓動日誌
CONTROL [initandlisten] build environment: CONTROL [initandlisten] distmod: rhel70 CONTROL [initandlisten] distarch: x86_64 [initandlisten] Failed to start up WiredTiger under any compatibility version [initandlisten] Reason: 13: Permission denied
看的出來是權限問題,配置dbpath和logpath目錄權限:
chown mongod:mongod 目錄 -R
再次運行成功
4:systemctl 如何啓動mongodb
查看 /usr/lib/systemd/system/mongod.service 文件,如果要修改,則必須:
systemctl daemon-reload systemctl status mongod.service
5:如何輪轉mongodb日誌文件
(1)發送信號
kill -SIGUSR1 `ps -aux | grep -v grep | grep mongodb | awk '{print $2}'`
(2)或使用mongodb管理命令
use admin db.runCommand({logRotate:1})
6:環境
php7.2.8,mongodb server是4.2,php mongodb ext是1.7,php mongodb library是1.6。
參考:
-
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
-
https://docs.mongodb.com/manual/reference/command/logRotate/index.html