Centos

如何在 CentOS 7 上安裝和執行 MongoDB?

  • December 29, 2020

我正在嘗試在 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 並將其設置為許可。

引用自:https://unix.stackexchange.com/questions/626687