• windows搭建MongoDB副本集及开启身份验证


    MongoDB副本集搭建

    我搭建的是一个主节点,两个副节点

    1. 构建目录结构如下图所示

    2. rs0是副本集名称,每一份文件都是一个端口服务,以27018为主节点。

    每一份的目录结构如下,conf存放的是配置文件信息,data27018是存放数据库数据信息,keyfile是存放key文件的。用于各个节点之间的身份验证。log存放数据库的日志信息,用来排查问题。

     

      3.conf文件

    Conf是放配置文件
    
    # mongod.conf
    
    # for documentation of all options, see:
    
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    
    storage:
    
      dbPath: D:MongoDB
    s027018data27018
    
      journal:
    
        enabled: true
    
    #  engine:
    
    #  mmapv1:
    
    #  wiredTiger:
    
    # where to write logging data.
    
    systemLog:
    
      destination: file
    
      logAppend: true
    
      path:  D:MongoDB
    s027018log27018mongo.log
    
    # network interfaces
    
    net:
    
      port: 27018
    
      bindIp: 0.0.0.0
    
    #processManagement:
    
    security:
    
      authorization: enabled
    
      keyFile: D:MongoDB
    s027018keyfile
    eplicaSet1.key
    
    #operationProfiling:
    
    replication:
    
      oplogSizeMB: 2048
    
      replSetName: rs0
    
    #sharding:
    
      #clusterRole: shardsvr
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:

    4.Keyfile下有个.key的文件为了复制集的用户验证。(keyfile文件是需要base编码且差不多660个字符。权限)

    可用Linux系统生成,或者找度娘。每一个端口服务下的key必须是同一个。

    5.修改每一个实例的conf文件里的端口号及数据存放地址,日志等。

    6.运行win+r 选择管理员启动cmd

    Windows注册服务

    Windows注册服务
    mongod.exe --config "D:MongoDB
    s027018confmongo.conf" --serviceName "MongoDB27018" --serviceDisplayName "MongoDB27018" –install
    
    mongod.exe --config "D:MongoDB
    s027019confmongo.conf" --serviceName "MongoDB27019" --serviceDisplayName "MongoDB27019" –install
    
    mongod.exe --config "D:MongoDB
    s027020confmongo.conf" --serviceName "MongoDB27020" --serviceDisplayName "MongoDB27020" --install

    安装成服务后可以到服务中查看。

     7.注册完成后,将所有服务启动

    8.重新打开cmd  连接到其中的一个mongodb实例命令为:   mongo --host ip地址 --port 27018

    9.再连接其他两个实例

    10.进入27018节点进行初始化配置

    输入命令

    其中的localhost 应是本机的IP地址。(此处坑,如果是服务器上一定要设置为IP地址,否则会重头再来)

    rscongfig={"_id":"rs0",members:[{_id:0,host:"localhost:27018"},{_id:1,host:"localhost:27019"},{_id:2,host:"localhost:27020"}]}

     

    初始化该配置

    rs.initiate(rscongfig)

    回车如下图,“ok”:1,无错误信息。为正确

    看下当前节点是否为主节点

     

    rs.status()查看当前副本集状态

    health:1   //1表明状态是正常,0表明异常
    state:1     // 1表明是primary,2表明是slave,即做备份的机器

    到此副本集就搭建成功了。接下来是开启身份验证

    11.创建用户名

    连接到27018,运行

    use admin

    定位到admin数据库,在这里创建用户信息

    db.createUser(
      {
        user: "root",
        pwd: "root",
        roles: [ { role: "root", db: "admin" } ]
      }
    )  

    12.找到主库的配置文件 conf 开启身份验证,同时从库也要开,配置好位置。

     

    conf 配置好后,将服务重新启动,然后客户端重新连接后 如果查看等报错的话就会提示需要权限,

    然后转到use admin

    db.auth("admin","admin")输入用户名密码

     返回1就是 成功。

    然后登陆从节点进行登陆看一下是否需要提示。
    如果都成功,可以写入数据看一下复制集中是否有数据。


    到此副本集身份验证开启说完了,下面说一下Springboot连接带安全认证的复制集

    application-dev.properties
    spring.data.mongodb.uri=mongodb://admin:password@127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020/ecis?authSource=admin&authMechanism=SCRAM-SHA-1&replicaSet=rs0& connectTimeoutMS=30000
    
    //解释
    admin:password是用户名密码 @IP地址端口号 authSource=admin 用户名存在的数据库 authMechanism 不造啥意思 replicaSet 复制集名称 connectTimeoutMS=30000连接时间

    下面是navicat连接复制集方式

     添加主机名,端口号,点击发现,可以查询当前复制集中的端口服务。


    终于写完了,第一次写,写的不好,请见谅。

  • 相关阅读:
    产品逻辑中的—B端技术常识:同步异步接口模式
    高德地图0907
    高德地图出异常
    svn提交报错
    高德地图demo
    JS中一些特殊的方法
    video标签的学习
    document.getElementById('file').files[0]的jquery写法
    layer请求设置遮罩
    easypoi入门<1
  • 原文地址:https://www.cnblogs.com/dadaokongkong/p/11919378.html
Copyright © 2020-2023  润新知