確保Ubuntu系統為18.04及以上版本(推薦22.04/24.04 LTS),并具備sudo
權限。提前更新系統軟件包:
sudo apt update && sudo apt upgrade -y
MongoDB官方為Ubuntu提供了優化的APT源,需先導入GPG密鑰并添加源列表:
# 導入MongoDB公鑰(適用于MongoDB 5.0+)
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
# 創建MongoDB源列表文件(替換$(lsb_release -cs)為Ubuntu版本代號,如jammy=22.04)
echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
更新APT包索引并安裝mongodb-org
(包含服務器、客戶端及工具):
sudo apt update
sudo apt install -y mongodb-org
啟動MongoDB服務并設置開機自動啟動:
sudo systemctl start mongod # 啟動服務
sudo systemctl enable mongod # 設置開機自啟
sudo systemctl status mongod # 檢查服務狀態(顯示"active (running)"即為成功)
使用內置mongo
命令行工具連接本地實例:
mongo
進入Shell后,可執行基礎操作(如創建數據庫、插入文檔)驗證功能:
use testdb; // 創建/切換至testdb數據庫
db.testcoll.insert({name: "Alice", age: 25}); // 插入文檔至testcoll集合
db.testcoll.find(); // 查詢集合中的文檔
MongoDB的主配置文件位于/etc/mongod.conf
,常用配置項及調整方法:
net.bindIp
(允許遠程訪問需設為0.0.0.0
,僅本地訪問則為127.0.0.1
);調整net.port
(默認27017,可根據需求修改)。storage.dbPath
(數據存儲路徑,默認/var/lib/mongodb
);調整storage.wiredTiger.engineConfig.cacheSizeGB
(WiredTiger緩存大小,建議為服務器內存的50%)。systemLog.path
(日志文件路徑,默認/var/log/mongodb/mongod.log
);設置systemLog.logAppend
為true
(日志追加模式)。replication.replSetName
(如rs0
)。修改配置文件后,需重啟服務生效:
sudo systemctl restart mongod
storage.wiredTiger.engineConfig.cacheSizeGB
(如8GB內存可設為4GB)。operationProfiling
中設置mode: "slowOp"
(閾值默認100ms),通過db.currentOp()
查看慢查詢。db.users.createIndex({email: 1})
),避免全表掃描。db.collection.stats()
審查索引使用情況。sh.shardCollection()
命令對集合分片(如sh.shardCollection("mydb.mycoll", { "_id": 1 })
)。sh.addShard()
將新節點加入集群(如sh.addShard("shard1:27017")
)。mongostat
)。mongotop
)。mongo --eval 'db.runCommand({serverStatus: 1})'
)。使用mongodump
工具備份數據(如備份所有數據庫至/backup
目錄):
mongodump --out /backup
使用mongorestore
工具恢復數據(如恢復/backup
目錄至本地數據庫):
mongorestore /backup
sudo systemctl status mongod
若服務未運行,檢查日志定位原因。
MongoDB日志默認位于/var/log/mongodb/mongod.log
,使用tail
命令查看最新日志:
sudo tail -f /var/log/mongodb/mongod.log
mongod --config /etc/mongod.conf --eval
。sudo chown -R mongodb:mongodb /var/lib/mongodb
。sudo rm /var/lib/mongodb/mongod.lock
,然后修復數據:mongod --config /etc/mongod.conf --repair
。sudo systemctl status mongod
。sudo ufw allow 27017
)。bindIp
配置:若遠程訪問,需設為0.0.0.0
。sudo chown -R mongodb:mongodb /var/lib/mongodb
)。