温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux上如何配置mongodb

发布时间:2022-02-18 14:23:35 来源:亿速云 阅读:244 作者:小新 栏目:开发技术
# 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 

二、安装MongoDB

2.1 通过官方仓库安装(推荐)

Ubuntu/Debian

# 导入公钥 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 

CentOS/RHEL

# 创建仓库文件 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 

2.2 验证安装

mongod --version # 应显示类似:db version v6.0.4 

三、基础配置

3.1 文件目录结构

/var/lib/mongo # 默认数据目录 /var/log/mongodb # 日志目录 /etc/mongod.conf # 主配置文件 

3.2 修改配置文件

编辑/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 # 后台运行 

3.3 启动服务

sudo systemctl start mongod sudo systemctl enable mongod # 验证运行状态 sudo systemctl status mongod 

四、安全加固

4.1 创建管理员用户

use admin db.createUser({ user: "admin", pwd: "StrongPassword123", roles: ["root"] }) 

4.2 启用认证

修改配置文件:

security: authorization: enabled 

重启服务后验证:

mongo -u admin -p StrongPassword123 --authenticationDatabase admin 

4.3 防火墙配置

sudo ufw allow 27017/tcp # Ubuntu sudo firewall-cmd --add-port=27017/tcp --permanent # CentOS 

五、性能优化

5.1 内存配置

根据服务器内存调整:

storage: wiredTiger: engineConfig: cacheSizeGB: 4 # 建议为可用内存的50-70% 

5.2 日志轮转

# 编辑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 } 

5.3 内核参数优化

# 增加文件描述符限制 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 

六、日常维护

6.1 备份与恢复

# 全量备份 mongodump --uri "mongodb://admin:password@localhost:27017" --out /backup/mongodb # 单库恢复 mongorestore --uri "mongodb://admin:password@localhost:27017" --db mydb /backup/mongodb/mydb 

6.2 监控命令

// 查看运行状态 db.serverStatus() // 查询慢日志 db.setProfilingLevel(1, 50) # 记录超过50ms的操作 

七、常见问题解决

7.1 启动失败排查

# 查看错误日志 tail -n 100 /var/log/mongodb/mongod.log # 常见错误: # - 数据目录权限问题:sudo chown -R mongod:mongod /var/lib/mongo # - 端口冲突:netstat -tulnp | grep 27017 

7.2 连接数过多

// 修改最大连接数(需重启) db.adminCommand({setParameter: 1, maxConnections: 2000}) 

结语

通过本文的详细指导,您应该已经完成了MongoDB在Linux系统上的完整部署。建议定期检查官方文档获取最新安全更新,对于生产环境还应考虑配置副本集以实现高可用性。MongoDB的强大功能将随着您的深入使用不断展现,祝您数据库管理之旅顺利! “`

注:实际使用时请根据具体需求调整: 1. 密码强度应符合安全规范 2. 端口和IP绑定需按实际网络环境配置 3. 性能参数应根据服务器硬件调整 4. 生产环境建议使用专业监控工具如Prometheus+MongoDB Exporter

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI