# Linux上如何配置MongoDB
## 前言
MongoDB作為一款流行的NoSQL數據庫,以其靈活的文檔存儲模型和高性能特性被廣泛應用于現代Web應用、大數據分析和物聯網等領域。本文將詳細介紹在Linux系統上安裝、配置和優化MongoDB的全過程,適用于Ubuntu、CentOS等主流發行版。
---
## 一、環境準備
### 1.1 系統要求
- 推薦Linux內核版本4.x以上
- 至少2GB可用內存(生產環境建議8GB+)
- 10GB以上磁盤空間
- root或sudo權限
### 1.2 依賴檢查
```bash
# 更新軟件包索引
sudo apt update # Ubuntu/Debian
sudo yum check-update # CentOS/RHEL
# 安裝基礎依賴
sudo apt install -y libcurl4 openssl liblzma5 # Ubuntu
sudo yum install -y libcurl openssl xz-libs # CentOS
# 導入公鑰
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# 添加倉庫
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 安裝最新穩定版
sudo apt update
sudo apt install -y mongodb-org
# 創建倉庫文件
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo
[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
EOF
# 安裝
sudo yum install -y mongodb-org
mongod --version
# 應顯示類似:db version v6.0.4
/var/lib/mongo # 默認數據目錄
/var/log/mongodb # 日志目錄
/etc/mongod.conf # 主配置文件
編輯/etc/mongod.conf
關鍵參數:
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
net:
port: 27017
bindIp: 127.0.0.1 # 生產環境應改為服務器IP
processManagement:
fork: true # 后臺運行
sudo systemctl start mongod
sudo systemctl enable mongod
# 驗證運行狀態
sudo systemctl status mongod
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123",
roles: ["root"]
})
修改配置文件:
security:
authorization: enabled
重啟服務后驗證:
mongo -u admin -p StrongPassword123 --authenticationDatabase admin
sudo ufw allow 27017/tcp # Ubuntu
sudo firewall-cmd --add-port=27017/tcp --permanent # CentOS
根據服務器內存調整:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 建議為可用內存的50-70%
# 編輯logrotate配置
sudo nano /etc/logrotate.d/mongodb
添加內容:
/var/log/mongodb/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -SIGUSR1 $(cat /var/lib/mongo/mongod.lock 2>/dev/null) 2>/dev/null || true
endscript
}
# 增加文件描述符限制
echo "* soft nofile 64000" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 64000" | sudo tee -a /etc/security/limits.conf
# 調整虛擬內存參數
sudo sysctl -w vm.zone_reclaim_mode=0
sudo sysctl -w vm.swappiness=1
# 全量備份
mongodump --uri "mongodb://admin:password@localhost:27017" --out /backup/mongodb
# 單庫恢復
mongorestore --uri "mongodb://admin:password@localhost:27017" --db mydb /backup/mongodb/mydb
// 查看運行狀態
db.serverStatus()
// 查詢慢日志
db.setProfilingLevel(1, 50) # 記錄超過50ms的操作
# 查看錯誤日志
tail -n 100 /var/log/mongodb/mongod.log
# 常見錯誤:
# - 數據目錄權限問題:sudo chown -R mongod:mongod /var/lib/mongo
# - 端口沖突:netstat -tulnp | grep 27017
// 修改最大連接數(需重啟)
db.adminCommand({setParameter: 1, maxConnections: 2000})
通過本文的詳細指導,您應該已經完成了MongoDB在Linux系統上的完整部署。建議定期檢查官方文檔獲取最新安全更新,對于生產環境還應考慮配置副本集以實現高可用性。MongoDB的強大功能將隨著您的深入使用不斷展現,祝您數據庫管理之旅順利! “`
注:實際使用時請根據具體需求調整: 1. 密碼強度應符合安全規范 2. 端口和IP綁定需按實際網絡環境配置 3. 性能參數應根據服務器硬件調整 4. 生產環境建議使用專業監控工具如Prometheus+MongoDB Exporter
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。