Linux上如何配置mongodb

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

推荐阅读:
  1. Linux下MongoDB安装与配置
  2. mongodb在linux上的安装

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

linux mongodb

上一篇:如何配置OSPF动态路由

下一篇:linux中如何使用prettyping

相关阅读

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

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