MongoDB副本集搭建 我搭建的是一个主节点,两个副节点 构建目录结构如下图所示 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连接复制集方式 添加主机名,端口号,点击发现,可以查询当前复制集中的端口服务。 终于写完了,第一次写,写的不好,请见谅。 https://www.cnblogs.com/dadaokongkong/p/11919378.html