1. 安裝官方YUM倉庫
在CentOS上安裝MongoDB前,需添加官方YUM倉庫以確保軟件包的完整性和安全性。創建/etc/yum.repos.d/mongodb-org.repo
文件,內容根據MongoDB版本調整(如6.0版本):
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
使用sudo yum install -y mongodb-org
安裝,避免從第三方源下載導致的安全風險。
2. 配置文件路徑與關鍵參數設置
MongoDB的主配置文件位于/etc/mongod.conf
,需重點調整以下參數:
storage.dbPath
(如/var/lib/mongo
)指定數據存儲目錄,systemLog.path
(如/var/log/mongodb/mongod.log
)指定日志文件路徑,確保目錄存在且權限正確(chown -R mongod:mongod /var/lib/mongo /var/log/mongodb
)。net.bindIp
默認為127.0.0.1
(僅本地訪問),若需遠程訪問,可改為0.0.0.0
(允許所有IP)或指定具體IP(如192.168.1.100
),但需配合防火墻限制訪問源。net.port
默認為27017
,可根據需求修改,但需確保端口未被占用。systemLog.logAppend
設置為true
,避免日志文件被覆蓋,便于故障排查。3. 安全配置(必做項)
security
section添加authorization: enabled
,強制用戶登錄后才能訪問數據庫。修改后需重啟服務(sudo systemctl restart mongod
)。mongo
命令進入shell,切換至admin
數據庫,創建具有管理權限的用戶(如admin
):use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: ["root"]
})
bindIp
設置為0.0.0.0
,需通過防火墻限制僅信任IP可訪問MongoDB端口(默認27017),例如使用firewall-cmd
:sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
net.ssl.mode: requireSSL
、net.ssl.PEMKeyFile
(證書路徑)和net.ssl.CAFile
(CA證書路徑),加密客戶端與服務器之間的通信,防止數據泄露。4. 服務管理與開機自啟
安裝完成后,使用以下命令啟動MongoDB服務并設置開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
通過sudo systemctl status mongod
檢查服務狀態,確保顯示為active (running)
。
5. SELinux配置(若啟用)
若系統啟用了SELinux(默認開啟),需調整策略以允許MongoDB訪問數據目錄和日志文件。執行以下命令:
sudo semanage fcontext -a -t mongod_var_lib_t "/var/lib/mongo(/.*)?"
sudo semanage fcontext -a -t mongod_log_t "/var/log/mongodb(/.*)?"
sudo restorecon -Rv /var/lib/mongo /var/log/mongodb
或臨時設置為寬松模式(測試環境使用):編輯/etc/selinux/config
,將SELINUX=enforcing
改為SELINUX=permissive
,然后重啟系統。
6. 性能優化配置
storage
section添加wiredTiger.engineConfig.cacheSizeGB
,設置為物理內存的50%(如8GB內存設置為4GB),避免內存占用過高影響系統性能。replication.oplogSizeMB
(默認為磁盤空間的5%),確保足夠空間存儲操作日志,防止復制中斷。systemLog.logRotate: reopen
,并配置logrotate
工具,定期分割日志文件,避免日志過大占用磁盤空間。7. 監控與維護
mongodump
工具定期備份數據(如每日備份),存儲至異地或云存儲,防止數據丟失。tail -f /var/log/mongodb/mongod.log
實時監控日志,關注錯誤信息(如連接超時、磁盤空間不足)。