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)勾选好信息

相关推荐
Decay__6 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
java_logo6 小时前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更
凤凰院凶涛QAQ7 小时前
《MySQL内核拆解:从SQL到InnoDB》(四) : 联合查询 & 视图
数据库·sql·mysql
码农小河667 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
张小姐的猫7 小时前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节
这个DBA有点耶11 小时前
信创场景下数据同步软件怎么选?对比开源CDC与原生闭环工具的结构性差异
数据库·mysql·架构
多客:duokelijie12 小时前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
PingCAP12 小时前
平凯星辰上榜!2026 年胡润全球独角兽企业
数据库
PingCAP12 小时前
轨道交通 AFC 系统升级,平凯 Loop 把跨部门协同变成可追溯闭环
数据库