Mongodb多副本Windows10安装部署

本教程详细介绍了如何在Windows10环境下安装并部署MongoDB多副本集群,包括下载安装包、创建配置文件、安装服务、启动集群以及设置权限。通过设置Primary节点,实现数据的高可用性和一致性。同时,文章还提到了MongoDB的权限管理,包括不同角色的权限介绍,帮助用户理解如何管理和控制数据库访问。
摘要由CSDN通过智能技术生成

1、下载Mongodb压缩包

Mongodb下载中心页面
上图右侧选择版本及包,点击下载按钮,下载所需介质,连接如下:
Mongodb下载官网连接
本文以压缩包形式进行安装部署。

2、创建Mongodb安装目录

在磁盘上分别创建三个Mongodb安装目录,将下载的压缩包分别解压到这三个目录,然后将解压后的目录名称修改为mongodb,在同目录下创建node目录,并在node目录下创建data目录和log目录,其中data目录用于存放数据,log目录用于存放日志文件。如下图:
其中data目录下的目录为启动Mongodb后生成的,非创建。
其中data目录下的目录为启动Mongodb后生成的,非创建。

3、创建配置文件

分别在三副本Monodb的node目录下创建配置文件,配置项如下:

#数据库路径
dbpath=E:\mongodb\mongodb01\node\data
#日志输出文件路径
logpath=E:\mongodb\mongodb01\node\log\mongo.log
#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false
#端口号 默认为27017
port=17270
#复制集名称
replSet=repl
#绑定ip,提供远程服务时需设置
#bind_ip=xxx.xxx.xxx.xx

其中dbpath、logpath、port需按照实际进行修改,本文为本地安装部署,不开启bind_ip。

4、安装Mongodb服务

以管理员运行cmd,安装mongodb服务。

mongod.exe --config "E:\mongodb\mongodb03\node\mongod_node.conf" --install --serviceName "mongodb03"

修改服务名称(serviceName)和配置文件路径,在其余两个分别执行上述命令。

5、启动Mongodb服务

使用如下命令分别启动已安装的Mongodb服务

net start mongodb01

停止Mongodb服务的命令如下:

net stop MongoDB

移除Mongodb服务的命令如下:

mongod.exe --remove --serviceName "mongodb01"

6、设置Primary节点并启动集群

选择欲成为Primary的节点,连接进入管理后台Shell,命令如下:

mongo.exe --port [端口号]

如果是设置了bindIp需加上**–host ip**参数。
连接成功后,执行如下命令:

>use admin
>rs.initiate({
_id:"repl", #副本集名称
members:[
{_id:0,host:"[node1_ip]:[port]"},
{_id:1,host:"[node2_ip]:[port]"},
{_id:2,host:"[node3_ip]:[port]"}
]
})

执行完毕后,使用如下命令验证是否成功:

rs.conf()
rs.status()

如果副本集设置成功,结果如下:

{
        "_id" : "repl",
        "version" : 1,
        "term" : 1,
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "127.0.0.1:17270",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "127.0.0.1:17271",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "127.0.0.1:17272",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("61907a65782f5292377e0b00")
        }
}

创建管理员用户

>use admin
>db.createUser({user:"root",pwd:"Root1234",roles:["root","dbAdmin"]})

执行完成后,需登录至备节点查看是否完成同步。

7、mongodb中的权限

  1. 数据库用户角色:read、readWrite;

  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

  4. 备份恢复角色:backup、restore;

  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

  6. 超级用户角色:root

  7. 内部角色:__system

这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

从mongo4.4开始,数据库工具不再是MongoDB服务器包的一部分。

需https://www.mongodb.com/try/download/database-tools下载MongoDB数据库工具

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值