mongodb 主从学习笔记

#创建配置文件地址
2 mkdir /home/mongodb/master/configdb
#创建db存放地址
mkdir /home/mongodb/master/db
#创建配置文件路径
mkdir /home/mongodb/slave/configdb
#创建db存放路径
mkdir /home/mongodb/slave/db
#创建配置文件路径
mkdir /home/mongodb/arditer/configdb
#创建db存放路径
mkdir /home/mongodb/arditer/db
vi /home/mongodb/master/configdb/mongod.conf (三个配置文件保持一致,如果在同一个服务器中一份文件即可)
net:
    #启动端口
    port: 27017
    #允许连接的IP(0.0.0.0作用与--bind_ip_all类似)
    bindIp: 0.0.0.0
systemLog:
    #重新启动mongodb的时候日志拼接在以前的日志文件上
    logAppend: true
security:
    #路径是容器映射到宿主机的路径
    keyFile: "/data/configdb/mongodbKeyfile.key"
    #开启客户端连接认证 disabled 关闭授权
    authorization: "enabled"
replication:
    replSetName: "mongo_rs"

生成key文件(需要注意三个都需要用同一个文件,否则会出现验证失败的情况)

#生成key文件
openssl rand -base64 756 > /home/mongodb/master/configdb/mongodbKeyfile.key
#key文件必须设置成400,否则将会失败(设置成其他都会失败了,不知道是不是这个权限问题)
chmod 400 /home/mongodb/master/configdb/mongodbKeyfile.key

docker run -di --name=mongo_master -p 27110:27017 -v /home/mongodb/master/configdb/:/data/configdb/ -v /home/mongodb/master/db/:/data/db/ mongo:3.6 --replSet "mongo_rs" --bind_ip_all -f /data/configdb/mongod.conf

docker run -di --name=mongo_slave -p 27111:27017 -v /home/mongodb/slave/configdb/:/data/configdb/ -v /home/mongodb/slave/db/:/data/db/ mongo:3.6 --replSet "mongo_rs" --bind_ip_all -f /data/configdb/mongod.conf

 
docker run -di --name=mongo_arditer -p 27112:27017 -v /home/mongodb/arditer/configdb/:/data/configdb/ -v /home/mongodb/arditer/db/:/data/db/ mongo:3.6 --replSet "mongo_rs" --bind_ip_all -f /data/configdb/mongod.conf

进入容器配置主从
docker exec -it mongo_master mongo admin

rs.initiate({_id:"mongo_rs",members:[{_id:0,host:"172.31.0.86:27110"},{_id:1,host:"172.31.0.86:27111"},{_id:2,host:"172.31.0.86:27112",arbiterOnly:true}]})

配置用户权限

#切换至admin
use admin
#添加用户
#db.createUser({user:'root',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},{role:'dbAdminAnyDatabase',db:'admin'}]})
db.createUser({user:'admin',pwd:'123456',roles:[{role:'root',db:'admin'}]})
#登录
db.auth('admin','123456')

use test
#给测试库添加账户
db.createUser({user:'test',pwd:'123456',roles:[{role:'readWrite',db:'test'}]})
#给测试库添加数据
db.userinfo.insert({"name":"张三","sex":"男"}

进入备机
docker exec -it mongo_slave mongo admin
#切换至test库
use test
#登录
db.auth('test','123456')
#设置备机可读
rs.slaveOk()
#查询数据
db.userinfo.find()
+++++++++++++分割线

在虚拟机上部署

配置文件如下:
net:
    #启动端口
    port: 27017
    bindIp: 0.0.0.0
systemLog:
    #重新启动mongodb的时候日志拼接在以前的日志文件上
    destination: file
    path: "/export/mongodb/log/mongod.log"
    logAppend: true
security:
    #路径是容器映射到宿主机的路径
    keyFile: "/export/mongodb/configdb/mongodbKeyfile.key"
    #开启客户端连接认证 disabled 关闭授权
    authorization: "enabled"
replication:
    replSetName: "mongo_rs"
storage:
    dbPath: "/export/mongodb/db"
processManagement:
    fork: true #后台运行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hqxzcy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值