当前位置: 首页 > news >正文

MongoDB 单机和集群环境部署教程

目录

    • 一、MongoDB 单机环境部署
      • 1. 环境准备
      • 2. 安装 MongoDB
        • 2.1 在 Ubuntu 上安装 MongoDB
        • 2.2 在 CentOS 上安装 MongoDB
        • 2.3 启动 MongoDB 服务
        • 2.4 验证 MongoDB 安装
        • 2.5 MongoDB 基本安全设置
      • 3. 单机部署注意事项
    • 二、MongoDB 集群环境部署
      • 1. 环境准备
      • 2. MongoDB Replica Set 部署
        • 2.1 配置每个节点的 MongoDB 实例
        • 2.2 配置 Replica Set
      • 3. 集群部署注意事项
    • 三、MongoDB 使用案例
      • 1. Java 示例:使用 MongoDB Java Driver
        • 1.1 添加 Maven 依赖
        • 1.2 编写 Java 代码
      • 2. Python 示例:使用 `pymongo` 连接 MongoDB
        • 2.1 安装 `pymongo`
        • 2.2 编写 Python 代码
    • 总结
      • 部署过程中的注意事项

一、MongoDB 单机环境部署

1. 环境准备

  • 操作系统:Linux(推荐 Ubuntu 20.04 或 CentOS 7),也可在 Windows 上安装 MongoDB。
  • MongoDB 版本:MongoDB 5.0(推荐使用最新稳定版本)。
  • 硬件要求:至少 2 GB 内存和 20 GB 的硬盘空间。

2. 安装 MongoDB

2.1 在 Ubuntu 上安装 MongoDB
  1. 导入 MongoDB 公共 GPG 密钥

    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
    
  2. 创建 MongoDB 源列表文件

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
    
  3. 更新本地包数据库并安装 MongoDB

    sudo apt update
    sudo apt install -y mongodb-org
    
2.2 在 CentOS 上安装 MongoDB
  1. 创建 MongoDB 的 YUM 源文件

    echo "[mongodb-org-5.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/5.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
    
  2. 安装 MongoDB

    sudo yum install -y mongodb-org
    
2.3 启动 MongoDB 服务
sudo systemctl start mongod
sudo systemctl enable mongod
2.4 验证 MongoDB 安装

检查 MongoDB 服务状态:

sudo systemctl status mongod
2.5 MongoDB 基本安全设置
  1. 设置管理员用户

    登录 MongoDB shell:

    mongo
    

    切换到 admin 数据库,并创建管理员用户:

    use admin
    db.createUser({user: "admin",pwd: "adminpassword",roles: [ { role: "root", db: "admin" } ]}
    )
    
  2. 启用认证

    编辑 MongoDB 配置文件 /etc/mongod.conf,启用认证:

    security:authorization: "enabled"
    

    重启 MongoDB 服务:

    sudo systemctl restart mongod
    

3. 单机部署注意事项

  • 安全性:启用用户认证,并限制外部访问 IP。
  • 备份:定期备份数据库,防止数据丢失。
  • 性能优化:根据使用场景调整内存和缓存设置,如 wiredTigerCacheSizeGB
  • 日志管理:配置日志以便于监控和调试。

二、MongoDB 集群环境部署

1. 环境准备

  • 多台服务器:至少 3 台,用于配置 MongoDB Replica Set。
  • 操作系统:Linux(推荐 Ubuntu 20.04 或 CentOS 7)。
  • MongoDB 版本:MongoDB 5.0。

2. MongoDB Replica Set 部署

2.1 配置每个节点的 MongoDB 实例

按照单机环境的安装步骤,在每个节点上安装 MongoDB。

2.2 配置 Replica Set
  1. 编辑 MongoDB 配置文件

    在每台服务器上编辑 /etc/mongod.conf,配置 Replica Set:

    replication:replSetName: "rs0"
    
  2. 启动 MongoDB 服务

    sudo systemctl restart mongod
    
  3. 初始化 Replica Set

    在主节点上启动 MongoDB shell:

    mongo
    

    初始化 Replica Set:

    rs.initiate({_id: "rs0",members: [{ _id: 0, host: "192.168.1.1:27017" },{ _id: 1, host: "192.168.1.2:27017" },{ _id: 2, host: "192.168.1.3:27017" }]
    })
    
  4. 检查 Replica Set 状态

    rs.status()
    

3. 集群部署注意事项

  • 网络配置:确保所有节点之间的网络连接稳定,且防火墙允许相应端口通信。
  • 节点配置一致性:确保每个节点的配置文件一致,特别是 replSetNamebindIp
  • 安全性:启用用户认证,并使用 SSL 进行加密通信。
  • 故障恢复:配置仲裁节点(arbiter)以防止脑裂现象,并定期监控节点状态。

三、MongoDB 使用案例

1. Java 示例:使用 MongoDB Java Driver

1.1 添加 Maven 依赖

pom.xml 中添加 MongoDB Java Driver 依赖:

<dependencies><dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-sync</artifactId><version>4.4.0</version></dependency>
</dependencies>
1.2 编写 Java 代码
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;public class MongoDBExample {public static void main(String[] args) {MongoClient mongoClient = MongoClients.create("mongodb://admin:adminpassword@localhost:27017");MongoDatabase database = mongoClient.getDatabase("testdb");MongoCollection<Document> collection = database.getCollection("testcollection");Document doc = new Document("name", "John Doe").append("email", "john.doe@example.com").append("age", 29);collection.insertOne(doc);Document myDoc = collection.find().first();System.out.println(myDoc.toJson());mongoClient.close();}
}

2. Python 示例:使用 pymongo 连接 MongoDB

2.1 安装 pymongo
pip install pymongo
2.2 编写 Python 代码
from pymongo import MongoClientdef query_database():client = MongoClient("mongodb://admin:adminpassword@localhost:27017/")db = client["testdb"]collection = db["testcollection"]doc = {"name": "John Doe", "email": "john.doe@example.com", "age": 29}collection.insert_one(doc)result = collection.find_one()print(result)client.close()if __name__ == "__main__":query_database()

总结

通过以上步骤,我们完成了 MongoDB 的单机和集群环境部署,并实现了 Java 和 Python 的简单连接示例。MongoDB 作为一款 NoSQL 数据库,具备高可扩展性和灵活的数据模型,适用于多种应用场景。

部署过程中的注意事项

  • 安全性:启用用户认证、IP 限制和 SSL 加密,确保数据安全。
  • 性能优化:根据需求调整缓存、索引等配置,提高性能。
  • 备份和恢复:定期备份数据库,并测试恢复过程,防止数据丢失。
  • 监控和日志管理:配置监控工具和日志系统,及时发现和解决问题,保障 MongoDB 的稳定运行。
http://www.lryc.cn/news/429496.html

相关文章:

  • 【学习笔记】Day 20
  • StringBuffer与StringBuilder 2024-8-21 22-13
  • 会声会影剪辑视频收费吗,会声会影最新破解版
  • 在Windows11强制开启copilot
  • 基于Java的开源CMS有哪些推荐,各自特点是什么
  • IPC进程通信以及网络通信
  • 【脏数据 bug 解决】ValueError: mean must have 1 elements if it is an iterable, got 3
  • 【Vue3】集成 Ant Design Vue
  • 如何处理前端项目中的SEO优化:从SPA到SSR与SSG
  • 【UE5】Groom毛发系统的基本使用——给小白人添加头发
  • DataWorks函数
  • 设计模式学习优质网站分享:refactoring.guru
  • JVM-Java的四种引用
  • 探索《黑神话:悟空》品质保障的背后:ISO体系认证
  • ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化
  • select的缺点;poll ;poll的缺点;epoll
  • keli5_报错 Cannot Load Device Description问题
  • 算法的学习笔记—把二叉树打印成多行(牛客JZ78)
  • FreeRTOS 时间管理
  • F. Valuable Cards D. Smithing Skill
  • 【电子通识】IPC-A-600中对验收标准的定义
  • MyBatis(初阶)
  • KDP数据平台:以实战案例验证技术领先力
  • [Linux] 什么是 Shell?
  • 大模型学习应用 2:快速上手大模型基于langchain实现RAG检索应用
  • python环境安装之后,cmd输入python回车会打开微软商店
  • USB Type-C如何取9V、12V、15V、20V电压-PD快充协议芯片ECP5701
  • Go 语言 Map 17
  • 移植bash到openharmony
  • git stash详细教程