MongoDB知识

1、部署MongoDB

(1)new好一个mongo文件之后执行

(出现mongodb.key)记得放行端口

复制代码
openssl rand -base64 666 > mongodb.key

(2)放到一个docker-compose.yml之后docker-compose up -d执行

复制代码
version: '3.2'
 
services:
  # 服务名称
  mongodb-27017:
    # 使用最新的 mongodb 镜像
    image: mongo:latest
    # docker 服务启动时,自动启动 mongo 容器
    restart: always
    # 容器的名称
    container_name: mongodb-27017
    # 宿主机中的目录和文件,映射容器内部的目录和文件
    volumes:
      - ./27017/data:/data/db
      - ./mongodb.key:/data/mongodb.key
    ports:
      # 宿主机的端口映射容器内的端口
      - 27017:27017
    environment:
      # 初始化一个 root 角色的用户 jobs 密码是 123456
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=lht660036
    # 使用创建的桥接网络,把各个 mongodb 容器连接在一起
    networks:
      - mongo-network
    # 启动容器时,在容器内部额外执行的命令
    # 其中 --replSet 参数后面的 mongos 是集群名称,这个很重要
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@
  
  mongodb2:
    image: mongo:latest
    restart: always
    container_name: mongodb-27018
    volumes:
      - ./27018/data:/data/db
      - ./mongodb.key:/data/mongodb.key
    ports:
      - 27018:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=lht660036
    networks:
      - mongo-network
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@
 
  mongodb3:
    image: mongo:latest
    restart: always
    container_name: mongodb-27019
    volumes:
      - ./27019/data:/data/db
      - ./mongodb.key:/data/mongodb.key
    ports:
      - 27019:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=lht660036
    networks:
      - mongo-network
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@
 
# 创建一个桥接网络,把各个 mongodb 实例连接在一起,该网络适用于单机
# 如果在不同的宿主机上,使用 docker swarm 需要创建 overlay 网络
networks:
  mongo-network:
    driver: bridge

(3)然后随便进入一个容器,输入账号密码

复制代码
docker exec -it 461950f32d09 '/bin/bash'

(4)进去之后初始化一下

复制代码
rs.initiate({
    _id: "mongos",
    members: [
        { _id : 0, host : "129.204.151.181:27017" },
        { _id : 1, host : "129.204.151.181:27018" },
        { _id : 2, host : "129.204.151.181:27019" }
    ]
});

(5)正常连接,搞定

2、Springboot集成

(1)new一个项目,先选好aliyun配置(不然只能用3.0的)

(2)勾选好信息

相关推荐
oradh9 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
ltl10 小时前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
闻道且行之11 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
夏炳辉.12 小时前
PostgreSQL 高可用集群核心配置参数全解:从原生流复制到 Patroni 企业级方案
数据库·postgresql
努力的小雨13 小时前
KES 开启 SSL 前,证书、端口和客户端要一起验
数据库
DevOps老兵13 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
这个DBA有点耶13 小时前
当数据库从“存储”走向“决策”:金仓数据库的融合架构之路
数据库·架构·aigc
smilejingwei14 小时前
Trae+SQLazy 实践 SQL 国产化移植:Oracle => 达梦
数据库·sql·oracle
意疏15 小时前
2026年远控软件安全横评:六款主流工具逐项核查——官方文档、一手实测与安全事件,全摊开
大数据·前端·数据库
名不经传的养虾人15 小时前
从0到1:企业级AI项目迭代日记 Vol.90|Agent变快了,Judge定下来了
大数据·数据库·人工智能·ai编程·企业ai