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

Posted 大盗空空空空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\\rs0\\27018\\data27018

  journal:

    enabled: true

#  engine:

#  mmapv1:

#  wiredTiger:

# where to write logging data.

systemLog:

  destination: file

  logAppend: true

  path:  D:\\MongoDB\\rs0\\27018\\log27018\\mongo.log

# network interfaces

net:

  port: 27018

  bindIp: 0.0.0.0

#processManagement:

security:

  authorization: enabled

  keyFile: D:\\MongoDB\\rs0\\27018\\keyfile\\replicaSet1.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\\rs0\\27018\\conf\\mongo.conf" --serviceName "MongoDB27018" --serviceDisplayName "MongoDB27018" –install

mongod.exe --config "D:\\MongoDB\\rs0\\27019\\conf\\mongo.conf" --serviceName "MongoDB27019" --serviceDisplayName "MongoDB27019" –install

mongod.exe --config "D:\\MongoDB\\rs0\\27020\\conf\\mongo.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连接复制集方式

 

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


 

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

 

 

 

 

 

 

 

 

以上是关于windows版本 MongoDB副本集搭建及开启身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu16.04搭建MongoDB3.4.3 副本集 开启认证模式

mongodb----副本集搭建及故障自动切换

mongo 单机开启副本集事务

window搭建mongodb副本集

Mongodb3.0.5副本集搭建及spring和java连接副本集配置

MongoDB副本集replica set --副本集环境搭建