# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。