Mongodb副本集配置(登录权限认证)

简述

​ 本文介绍了MongoDb安装及副本集配置。

1. 准备工作

​ 服务器数量:3

​ 系统版本:Uuntu 18.04

​ MongoDB版本:Ubuntu 18.04-4.2.14

2. 安装MongoDb

​ ① 首先设置三台服务器的ip地址,这里分别设置为:172.21.78.65、172.21.78.94、172.21.78.97,下面直接用65、94、97表示这三台服务器。

​ ② 确定每一台服务器的信息

IPReplicaSet
172.21.78.65ARBITER
172.21.78.94SECONDARY
172.21.78.97PRIMARY

​ ③ 将下载好的MongoDb安装包上传到三台服务器上,放在/home/adv,解压安装包

tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.2.14.tgz

​ ④ 将解压后的文件夹移动到/opt下,重命名为mongodb-4.2.14

mv mongodb-linux-x86_64-ubuntu1804-4.2.14 /opt/mongodb-4.2.14

​ ⑤ 执行以下命令

mkdir -p /opt/mongodb-4.2.14/data /opt/mongodb-4.2.14/etc /opt/mongodb-4.2.14/logfiles /opt/mongodb-4.2.14/run

​ data为mongod进程存储数据目录,etc为配置文件key文件存放目录,logfiles为日志存放目录,run为pid文件存放目录

​ ⑥ 进入/opt/mongodb-4.2.14/etc,创建mond.conf文件并编辑

vim /opt/mongodb-4.2.14/mongod.conf

​ ⑦ 复制以下内容到mongod.conf中,各个配置的详细作用在后面会做解释

# mongod.conf
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
#
storage:
    dbPath: /opt/mongodb-4.2.14/data
    journal:
        enabled: true
    engine: wiredTiger
    wiredTiger:
        engineConfig:
            cacheSizeGB: 2
        collectionConfig:
            blockCompressor: zlib
        indexConfig:
            prefixCompression: true
systemLog:
    logAppend: true
    logRotate: reopen
    destination: file
    path: /opt/mongodb-4.2.14/logfiles/mongod.log
net:
    bindIp: 0.0.0.0
    port: 27017
setParameter:
    enableLocalhostAuthBypass: false
#security:
    #authorization: enabled 
    #keyFile: /opt/mongodb-4.2.14/etc/mongodb.key
replication:
  replSetName: "replicaSet"

​ ⑧ 将MongoDb配置为系统服务,并设置为开机启动,进入/etc/system/system下创建编辑mongodb.service

vim /etc/system/system/mongodb.service

​ ⑨ 复制以下内容到mongodb.service中

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target
		
[Service]
Type=forking
Restart=always
RestartSec=5

User=root
Group=root

PIDFile=/opt/mongodb-4.2.14/run/mongodb.pid
ExecStart=/opt/mongodb-4.2.14/bin/mongod \
    --config /opt/mongodb-4.2.14/etc/mongod.conf \
    --pidfilepath /opt/mongodb-4.2.14/run/mongodb.pid \
    --fork

#
# Resources limits
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
#
# (file size)
LimitFSIZE=infinity
#
# (cpu time)
LimitCPU=infinity
#
# (virtual memory size)
LimitAS=infinity
#
# (locked memory)
LimitMEMLOCK=infinity
#
# (open files)
LimitNOFILE=64000
#
# (processes/threads)
LimitNPROC=64000
#
# (total threads -- user+kernel)
TasksMax=infinity
TasksAccounting=false


[Install]
WantedBy=multi-user.target

​ ⑩ 修改mongodb.service的权限

sudo chmod +x mongodb.service

​ ⑪ 设置为开机启动

sudo systemctl enable mongodb.service

​ ⑫ 启动服务

sudo systemctl start mongod.service

​ ⑬ 在65、94、97执行③-⑫操作

3. 副本集配置

​ ① 进入任意服务器,这里选择97

/opt/mongodb-4.2.14/bin/mongo localhost:27017

​ ② 执行如下命令

cfg={_id: 'replicaSet', members: [ 

  {_id: 0,host: '172.21.78.97:27017'}, 

  {_id: 1,host: '172.21.78.94:27017'},

  {_id: 2,host: '172.21.78.65:27017', arbiterOnly:true}]

}

rs.initiate(cfg)

​ 到这里不带认证的副本集就配置完成了。

​ 若需要后期添加节点,使用

​ rs.add(“ip:port”)

​ 删除节点

​ rs.remove(“ip:port”)

​ 手动添加仲裁节点

​ rs.addArb(“ip:port”)

​ 注意,如果节点在同一机器上,在添加的时候ip不要使用localhost,否则navicat等可视化图形工具会无法连接到副本集。

4. 权限认证登录配置

​ ① 进入Primary节点,这里为97,登录mongo

/opt/mongodb-4.2.14/bin/mongo localhost:27017

​ ② 为整个副本集创建用户

replicaSet:PRIMARY> use admin

switched to db admin

replicaSet:PRIMARY> db.createUser({user:"admin", pwd:"admin", roles:[{role: "userAdminAnyDatabase", db:"admin" }]})

​ 出现以下信息表示成功

Successfully added user: {
  "user" : "admin",
  "roles" : [{"role" : "userAdminAnyDatabase",
​      "db" : "admin"}
  ]
}

​ ③ 创建普通数据库、用户

replicaSet:PRIMARY> db.auth("admin","admin")

1

replicaSet:PRIMARY> use test

switched to db test

replicaSet:PRIMARY> db.createUser({user:"test",pwd:"test",roles:[

{"role" : "readWrite","db" : "test"},

{"role" : "dbAdmin","db" : "test"},

{"role" : "dbOwner","db" : "test"},

{"role" : "userAdminAnyDatabase","db" : "admin"},

{"role" : "hostManager","db" : "admin"},

{"role" : "clusterAdmin","db" : "admin"}]})

​ ④ 连接测试:

/opt/mongodb-4.2.14/bin/mongo localhost:27017/test -u test -p test

​ ⑤ 创建副本集认证key文件。注意,副本集节点之间必须要用同一份keyfile,在一台机器生成,拷贝到另外两台,并且权限必须是600。

sudo openssl rand -base64 741 >> /opt/mongodb-4.2.14/etc/mongodb.key

sudo chmod 600 /opt/mongodb-4.2.14/etc/mongodb.key

​ ⑥ 关闭MongoDb,顺序为Secondary-> Arbiter->Primary,命令如下

replicaSet:SECONDARY> use admin
switched to db admin
replicaSet:SECONDARY> db.shutdownServer()
server should be down...

​ ⑦ 修改每一台服务器的mongd.conf,开启权限认证。打开security下的注释,如下

security:
  authorization: enabled 
  keyFile: /opt/mongodb-4.2.14/etc/mongodb.key

​ ⑧ 在每台服务器上启动mongodb服务

sudo systemctl start mongod.service

​ ⑨ 使用权限认证登录primary节点

/opt/mongodb-4.2.14/bin/mongo localhost:27017/test -u test -p test

5. MongoDb新版配置文件介绍

​ 可以参考这篇文章,里面有详细的介绍

​ 转载:Mongodb 新版配置文件详解(转载) - xibuhaohao - 博客园 (cnblogs.com)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只有秃子才能变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值