您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。