Centos
如何在 CentOS 7 上安裝和執行 MongoDB?
我正在嘗試在 CentOS 7 機器上安裝和執行 MongoDB 伺服器。CentOS 7 機器在我的大學校園裡,我正在家里通過 VPN 通過 ssh 訪問它。
我已經按照連結中給出的每一步:
https ://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
這是輸出
sudo systemctl start mongod
:Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
這是輸出
systemctl status mongod.service
:● mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2020-12-30 00:23:07 IST; 1min 41s ago Docs: https://docs.mongodb.org/manual Process: 61587 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14) Process: 61584 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 61581 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 61578 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS) Dec 30 00:23:07 smart systemd[1]: Starting MongoDB Database Server... Dec 30 00:23:07 smart mongod[61587]: about to fork child process, waiting until server is ready for connections. Dec 30 00:23:07 smart mongod[61587]: forked process: 61589 Dec 30 00:23:07 smart mongod[61587]: ERROR: child process failed, exited with 14 Dec 30 00:23:07 smart mongod[61587]: To see additional information in this output, start without the "--for...tion. Dec 30 00:23:07 smart systemd[1]: mongod.service: control process exited, code=exited status=14 Dec 30 00:23:07 smart systemd[1]: Failed to start MongoDB Database Server. Dec 30 00:23:07 smart systemd[1]: Unit mongod.service entered failed state. Dec 30 00:23:07 smart systemd[1]: mongod.service failed. Hint: Some lines were ellipsized, use -l to show in full.
這是輸出
journalctl -xe
:Dec 30 00:23:07 smart polkitd[1826]: Unregistered Authentication Agent for unix-process:61557:106467206 (system bus Dec 30 00:23:08 smart dbus[1879]: [system] Successfully activated service 'org.fedoraproject.Setroubleshootd' Dec 30 00:23:08 smart setroubleshoot[61594]: failed to retrieve rpm info for /proc/sys/net/ipv4/tcp_fastopen Dec 30 00:23:08 smart setroubleshoot[61594]: SELinux is preventing /usr/bin/mongod from open access on the file /pr Dec 30 00:23:08 smart python[61594]: SELinux is preventing /usr/bin/mongod from open access on the file /proc/sys/n ***** Plugin catchall (100. confidence) suggests ************************** If you believe that mongod should be allowed open access on the tcp_fastopen f Then you should report this as a bug. You can generate a local policy module to allow this access. Do allow this access for now by executing: # ausearch -c 'mongod' --raw | audit2allow -M my-mongod # semodule -i my-mongod.pp Dec 30 00:23:11 smart setroubleshoot[61594]: SELinux is preventing /usr/bin/mongod from unlink access on the sock_f Dec 30 00:23:11 smart python[61594]: SELinux is preventing /usr/bin/mongod from unlink access on the sock_file mong ***** Plugin catchall (100. confidence) suggests ************************** If you believe that mongod should be allowed unlink access on the mongodb-2701 Then you should report this as a bug. You can generate a local policy module to allow this access. Do allow this access for now by executing: # ausearch -c 'mongod' --raw | audit2allow -M my-mongod # semodule -i my-mongod.pp Dec 30 00:24:52 smart chronyd[2023]: Source 162.159.200.123 replaced with 5.189.141.35
我不知道我哪裡出錯了,或者我錯過了一些基本的配置步驟。我嘗試了許多線上部落格/網站,例如:
https://unix.stackexchange.com/a/568238/372656
https://stackoverflow.com/a/64818226
但它們沒有幫助。
誰能解釋一下我該如何解決這個問題?提前致謝。
我想我應該把我的評論作為解決方案:
它在 journalctl 輸出中說 SELinux 正在阻止 Mongod 對某些文件進行開放訪問,這會阻止 mongodb 工作。您需要將 SELinux 置於 permissive 模式,或者告訴 SELinux 允許 mongodb 執行:
有關更多詳細資訊,請參閱此連結。此連結用於更長的解釋,或者按照連結 1 設置 enforcing=0,或者編輯 /etc/selinux/config 並將其設置為許可。