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
此步驟避免了從默認倉庫安裝可能存在兼容性問題的MongoDB版本。
2. 配置文件路徑與關鍵參數設置
MongoDB的主配置文件位于/etc/mongod.conf
,需重點調整以下參數:
storage.dbPath
(如/var/lib/mongo
)指定數據存儲目錄,systemLog.path
(如/var/log/mongodb/mongod.log
)指定日志文件路徑,并啟用日志追加模式(systemLog.logAppend: true
)。net.bindIp
默認為127.0.0.1
(僅本地訪問),若需遠程訪問,可改為0.0.0.0
(允許所有IP)或指定具體IP(如192.168.1.100
);net.port
默認為27017
,可根據需求修改。processManagement.fork: true
讓MongoDB以守護進程模式運行(后臺服務)。sudo vi /etc/mongod.conf
編輯,修改后重啟服務生效。3. 安全配置(必做)
security
section添加authorization: enabled
,強制用戶連接時需提供用戶名和密碼,防止未授權訪問。修改后需重啟MongoDB服務。mongo
),切換至admin
數據庫,執行以下命令創建管理員賬戶(示例):use admin
db.createUser({
user: "admin",
pwd: "your_secure_password",
roles: ["root"] // root角色擁有所有數據庫管理權限
})
bindIp
設置為0.0.0.0
,需通過防火墻限制僅信任IP可訪問MongoDB端口(默認27017),降低被掃描攻擊的風險。4. 防火墻配置
若系統啟用了firewalld
,需開放MongoDB端口以允許遠程連接:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent # 永久添加端口
sudo firewall-cmd --reload # 重新加載防火墻規則
若使用iptables
,可執行sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
并保存規則。
5. 性能優化配置
storage.wiredTiger.engineConfig
下設置cacheSizeGB
,建議值為物理內存的50%(如8GB內存可設為4GB),避免占用過多內存導致系統卡頓。replication.oplogSizeMB
需根據數據寫入量調整(默認為磁盤空間的5%),確保有足夠空間存儲操作日志(用于主從同步)。systemLog.logRotate: reopen
并結合系統日志輪轉工具(如logrotate
),防止日志文件過大占用磁盤空間。6. SELinux配置(若啟用)
若系統啟用了SELinux(默認啟用),需調整策略允許MongoDB訪問數據目錄:
sudo semanage fcontext -a -t mongod_var_lib_t "/var/lib/mongo(/.*)?" # 設置SELinux上下文
sudo restorecon -Rv /var/lib/mongo # 恢復上下文
或臨時設置為寬松模式(測試環境可用):編輯/etc/selinux/config
,將SELINUX=enforcing
改為SELINUX=permissive
,然后重啟系統。
7. 開機自啟與狀態檢查
配置完成后,啟動MongoDB服務并設置開機自啟:
sudo systemctl start mongod # 啟動服務
sudo systemctl enable mongod # 設置開機自啟
sudo systemctl status mongod # 檢查服務狀態(應為active(running))
通過mongo --eval 'db.version()'
命令可驗證MongoDB是否正常運行。