首页主机资讯centos mongodb使用案例分析

centos mongodb使用案例分析

时间2025-12-19 21:14:03发布访客分类主机资讯浏览387
导读:CentOS 上 MongoDB 使用案例 一 场景与目标 在 CentOS 7/8 上部署 MongoDB 4.4/5.0,以 YUM 包管理方式安装,配置为系统服务,启用 鉴权与 远程访问,并创建业务库与用户。 通过 Docker 快...

CentOS 上 MongoDB 使用案例

一 场景与目标

  • CentOS 7/8 上部署 MongoDB 4.4/5.0,以 YUM 包管理方式安装,配置为系统服务,启用 鉴权远程访问,并创建业务库与用户。
  • 通过 Docker 快速起一个带鉴权的 MongoDB 实例,便于开发/测试环境复用与隔离。
  • 完成基础运维:创建库/用户、索引与聚合查询、备份与恢复、以及常见故障排查与性能优化要点。

二 安装与部署

  • YUM 安装与系统服务

    • 创建仓库文件 /etc/yum.repos.d/mongodb-org-4.4.repo,内容示例:
      • [mongodb-org-4.4]
      • name=MongoDB Repository
      • baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
      • gpgcheck=1
      • enabled=1
      • gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    • 安装与启动:
      • sudo yum install -y mongodb-org
      • sudo systemctl start mongod & & sudo systemctl enable mongod
    • 说明:如需避免意外升级,可在 /etc/yum.conf 增加:exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-tools。以上流程适用于 CentOS 上的 MongoDB 安装与自启动管理。
  • Docker 快速部署(可选)

    • 启动容器(映射端口 27017,挂载数据卷,开启鉴权):
      • docker run --name mongodb -p 27017:27017 -v /data/db:/data/db -d mongo:latest --auth
    • 进入容器创建管理员并验证:
      • docker exec -it mongodb mongo admin
      • db.createUser({ user: ‘admin’, pwd: ‘StrongPass!’, roles: [{ role: “userAdminAnyDatabase”, db: “admin” } ] } )
      • db.auth(‘admin’, ‘StrongPass!’)
    • 如需远程连接,可在容器内编辑 /etc/mongod.conf.origbindIp 调整为 0.0.0.0,并在宿主机放行 27017/tcp 防火墙端口。该方式适合快速搭建与隔离环境。

三 安全与远程访问配置

  • 配置文件 /etc/mongod.conf 关键项示例:
    • net:
      • bindIp: 0.0.0.0
      • port: 27017
    • security:
      • authorization: enabled
  • 重启生效:sudo systemctl restart mongod
  • 防火墙放行(CentOS 7 firewalld):
    • firewall-cmd --zone=public --add-port=27017/tcp --permanent
    • firewall-cmd --reload
  • 说明:生产环境务必开启 authorization 并限制来源 IP;仅在开发/测试环境可按需临时关闭鉴权(见下一节)。

四 基本运维与常用操作

  • 安全初始化与业务库用户
    • 连接 shell:mongo 或 mongo 127.0.0.1:27017/admin -u admin -p
    • 创建业务库与只读/读写用户:
      • use sales
      • db.createUser({ user: ‘app_r’, pwd: ‘R3adOnly!’, roles: [{ role: “read”, db: “sales” } ] } )
      • db.createUser({ user: ‘app_rw’, pwd: ‘RwPass!’, roles: [{ role: “readWrite”, db: “sales” } ] } )
  • 常用 Shell 操作(CRUD、索引、聚合)
    • 插入与查询:
      • db.products.insertMany([{ sku: “A1001”, name: “Laptop”, price: 5999 } , { sku: “B2002”, name: “Mouse”, price: 99 } ])
      • db.products.find({ price: { $gt: 100 } } , { name: 1, price: 1, _id: 0 } )
    • 索引与聚合:
      • db.products.createIndex({ sku: 1 } , { unique: true } )
      • db.products.aggregate([ { $match: { price: { $gte: 100 } } } , { $group: { _id: “$name”, total: { $sum: 1 } } } , { $sort: { total: -1 } } ])
  • 备份与恢复
    • mongodump --host 127.0.0.1 --port 27017 --db sales --out /backup/sales_$(date +%F)
    • mongorestore --host 127.0.0.1 --port 27017 /backup/sales_2025-12-19/sales
  • 说明:以上命令覆盖日常开发/运维的高频操作,包含连接、用户与权限、索引与聚合、备份恢复等核心能力。

五 常见问题与优化建议

  • 无法远程连接
    • 核对 bindIp=0.0.0.0、云服务器安全组/本机防火墙已放行 27017/tcp,以及 MongoDB 已启用 authorization 且使用正确凭据。
  • 忘记管理员密码或需临时关闭鉴权(仅开发环境)
    • 编辑 /etc/mongod.conf:security.authorization: “disabled”,重启后在本地无鉴权连接重置用户,再恢复为 “enabled”。切勿在生产环境长期关闭鉴权。
  • 性能优化要点
    • 为高频查询字段建立合适的 单字段/复合索引,避免全表扫描;结合 explain() 分析执行计划;对聚合与排序场景合理设计索引与内存使用;定期使用 mongostat/mongotop 观察负载与热点。
  • 升级与迁移提示
    • 升级前做好 全量备份,按小版本逐步升级,核对配置差异(如存储引擎与参数变更),升级后回归关键业务与性能基线。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos mongodb使用案例分析
本文地址: https://pptw.com/jishu/776658.html
centos mongodb内存配置指南 centos composer如何进行全局配置

游客 回复需填写必要信息