Centos7 下 MongoDB4.0.0 的安装及复制集配置

5 篇文章 0 订阅
1 篇文章 0 订阅

Centos7 下 MongoDB4.0.0 的安装及复制集配置

su root

关闭防火墙(当然也可以选择仅开放端口)

systemctl stop firewalld.service
systemctl disable firewalld.service


=================================MongoDB安装===============================================

1.下载源文件

(官网下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz)

也可以到mongodb官网下载

2.创建源文件存放目录

mkdir -p /data/software/

3.创建mongodb安装目录

cd /usr/local
mkdir mongodb

3.上传源文件到/data/software/目录下
rz

mv mongodb-linux-x86_64-4.0.0.tgz /data/software/

4.解压文件到/usr/local/mongodb下
tar -zxvf mongodb-linux-x86_64-4.0.0.tgz

mv mongodb-linux-x86_64-4.0.0/*  /usr/local/mongodb/

5.创建mongodb相关目录
cd /usr/local/mongodb/

mkdir data   ##数据目录
mkdir logs   ##日志目录
mkdir etc    ##配置文件目录

6.修改linux 最大文件限制数
echo ulimit -n 65535 >>/etc/profile
source /etc/profile


7.上传配置文件mongodb.conf到/usr/local/mongodb/etc/目录下
rz  ##注意:此时先不要加security.keyFile属性,防止mongodb复制集没有权限

8.添加mongodb环境变量
echo 'export PATH=/usr/local/mongodb/bin:$PATH'  >>  /etc/profile
source /etc/profile

9.启动mongodb

mongod -f /usr/local/mongodb/etc/mongodb.conf


=================================MongoDB复制集模式部署============================================
注:mongodb4.0.0已不支持主从模式, 这里部署为replica sets(复制集),可以部署多台服务

1.启动两台机器上的mongodb服务
mongod -f /usr/local/mongodb/etc/mongodb.conf


2.在主节点添加节点
mongo
rs.status()    ##查看复制集状态
var cfg={_id:'energy-rc',members:[{_id:0,host:'172.16.2.78:27017'},{_id:1,host:'172.16.2.77:27017'}]}
rs.initiate(cfg)   ##初始化复制集
rs.status()
exit


3.主从节点重启,并添加keyfiles

注:复制集的权限和单机的访问权限不同,官方支持两种方式:

1)Keyfiles文件方式;2)x.509方式

这里采用的是第一种方式


4.主从节点分别关闭
mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

5.此时加入security.keyFile属性
openssl rand -base64 756 > energy-rc.key    ##生成keyfiles文件
chmod 400 energy-rc.key                                   ##设置只读权限
mv energy-rc.key /usr/local/mongodb/           ##移动到mongodb.conf中定义的security.keyFile属性值
cd /usr/local/mongodb/
ls                                                                               ##查看是否移动成功

6.启动主、从节点服务
mongod -f /usr/local/mongodb/etc/mongodb.conf

7.在主节点创建超级用户
mongo
show dbs
use admin
db.createUser({ user: "admin", pwd: "energy", roles: [{ role: "root", db: "admin" }] })

 

8.在主节点插入数据,验证从节点是否成功
use energy_battery
db.cell.insert({"_id":"1"})

9.如果有多个节点,可以通过如下命令添加、移除节点
rs.status()
rs.remove("172.16.2.77:27017")
rs.add("172.16.2.77:27017")

=============================================================================================

附:mongodb.conf

#mongod.conf
#for documentation of all options, see:
#http://docs.mongodb.org/manual/reference/configuration-options/
systemLog:
   destination: file
   logAppend: true
   path: /usr/local/mongodb/log1/mongodb.log
storage:
   dbPath: /usr/local/mongodb/data1/
   journal:
      enabled: true
processManagement:
   fork: true
   pidFilePath: /usr/local/mongodb/mongod.pid
   timeZoneInfo: /usr/share/zoneinfo
net:
   port: 27017
   bindIp: 0.0.0.0
replication:
   replSetName: energy-rc
security:
   keyFile: /usr/local/mongodb/energy-rc.key

 

参考资料:

Update Replica Set to Keyfile Authentication — MongoDB Manualhttps://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值