确保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
)。