通過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安裝,安裝完成后啟動服務并設置開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
驗證狀態:sudo systemctl status mongod(顯示active (running)即為成功)。
默認情況下,MongoDB僅綁定到127.0.0.1(本地訪問)。若需遠程訪問,修改配置文件/etc/mongod.conf中的bindIp:
net:
bindIp: 0.0.0.0 # 允許所有IP訪問(生產環境建議限制為特定IP)
port: 27017 # 默認端口,可根據需求修改
修改后重啟服務:sudo systemctl restart mongod。
防火墻設置:若啟用firewalld,開放27017端口:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
安全提醒:生產環境應將bindIp設置為服務器實際IP(如192.168.1.100),避免暴露給公網。
MongoDB默認無認證,需開啟授權并創建管理員賬戶:
/etc/mongod.conf,添加security.authorization: enabled:security:
authorization: enabled # 啟用用戶權限控制
重啟服務使配置生效:sudo systemctl restart mongod。mongo shell登錄,執行以下命令(替換your_password為強密碼):use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
bindIp設置為特定IP,連接時需指定用戶名和密碼:mongo -u admin -p your_password --authenticationDatabase admin
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 根據服務器內存調整(如8GB內存可設為4GB)
articles集合的title字段創建升序索引:db.articles.createIndex({ title: 1 }) // 1表示升序,-1表示降序
復合索引(多字段)適用于多條件查詢,如author_id和created_at的組合:db.articles.createIndex({ author_id: 1, created_at: -1 })
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
logRotate: reopen # 日志輪轉方式(默認支持)
net:
maxIncomingConnections: 5000
/etc/mongod.conf,添加replication.replSetName(如rs0):replication:
replSetName: rs0
sudo systemctl restart mongod。mongo shell中執行):rs.initiate()
secondary_node_ip為從節點IP):rs.add("secondary_node_ip:27017")
config servers(配置服務器)、shard servers(分片服務器)和mongos(路由服務器),步驟較復雜,建議參考MongoDB官方文檔。mongostat(實時監控操作頻率)和mongotop(監控集合級讀寫時間)工具:mongostat # 每秒顯示操作次數、延遲等指標
mongotop # 顯示每個集合的讀寫時間(默認1秒刷新)
/etc/mongod.conf:operationProfiling:
mode: slowOp # 記錄慢查詢
slowOpThresholdMs: 100 # 慢查詢閾值(單位:毫秒,默認100ms)
以上技巧覆蓋了MongoDB在CentOS上的安裝、網絡、安全、性能、高可用及監控等核心環節,可根據實際業務需求調整配置參數。