首页 > 数据库 >部署 mongodb replica set

部署 mongodb replica set

时间:2023-01-04 23:12:45浏览次数:58  
标签:mongod set conf mongodb etc pwd replica key

1. 环境

  1. mongodb 6.0
  2. docker

2. 步骤

  1. 创建用于副本集认证的keyfile
# 创建文件
openssl rand -base64 756 > mongodb.key
# 修改权限(这里权限得是400,用777启动会报错)
chmod 400 mongodb.key
  1. 创建mongodb配置文件
replication:
  replSetName: rs0

security:
  # 先禁用认证
  # authorization: enabled
  keyFile: /etc/mongodb.key
net:
  bindIpAll: true
  1. 部署mongodb
    由于只是测试所以不映射数据库文件
docker run -d --name rs01 -p 17017:27017 -v $(pwd)/mongod.conf:/etc/mongod.conf -v $(pwd)/mongodb.key:/etc/mongodb.key mongo:6.0.3 --config /etc/mongod.conf

docker run -d --name rs02 -p 27017:27017 -v $(pwd)/mongod.conf:/etc/mongod.conf -v $(pwd)/mongodb.key:/etc/mongodb.key mongo:6.0.3 --config /etc/mongod.conf

docker run -d --name rs03 -p 37017:27017 -v $(pwd)/mongod.conf:/etc/mongod.conf -v $(pwd)/mongodb.key:/etc/mongodb.key mongo:6.0.3 --config /etc/mongod.conf
  1. 初始化副本集
# 进入容器
docker exec -it rs01 /bin/bash
# 连接mongo
mongosh
# 使用admin
use admin
# 初始化集群,host建议用域名,而非ip。
rs.initiate( {
   _id : "rs0",
   members: [
      { _id: 0, host: "www.whyfate.com:17017" },
      { _id: 1, host: "www.whyfate.com:27017" },
      { _id: 2, host: "www.whyfate.com:37017" }
   ]
})
# 创建管理员
db.createUser(
   {
     user: "whyfate",
     pwd: passwordPrompt(),
     roles: [ { role: "root", db: "admin" } ]
   }
)

这里偷懒用了root用户,正式环境参考mongodb角色大全
5. 修改配置文件,启用认证,重启程序。

标签:mongod,set,conf,mongodb,etc,pwd,replica,key
From: https://www.cnblogs.com/wh-blog/p/17026274.html

相关文章