文章目录
配置步骤
拉取image, mongo docker版本:
$ docker pull mongo:5.0.2
keyfile生成:
$ mkdir -p /data/keyfile
$ openssl rand -base64 745 > /data/keyfile/mongoReplSet-keyfile
$
#启动日志出现"errmsg":"Error reading file /data/keyfile/mongoReplSet-keyfile: Permission denied"
#容器启动时增加--privileged, 配置文件权限:
$ chmod 600 /data/keyfile/mongoReplSet-keyfile
$ chown 999:root /data/keyfile/mongoReplSet-keyfile
docker容器创建:
docker run -itd --name mongo \
--privileged \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
-p 27018:27017 \
-v /data/keyfile/:/data/keyfile \
mongo:5.0.2 --auth --keyFile /data/keyfile/mongoReplSet-keyfile --bind_ip_all --replSet rs1
初始化副本集:
$ docker exec -it mongo bash
$ mongo -uroot -p123456
> use admin
> conf={ _id : 'rs1', members: [ { _id : 0, host : "192.168.10.88:27018" } ] }
> rs.initiate(conf)
为指定库创建连接用户:
> use test
> db.createUser( {user: "test",pwd: "123456",roles: [ { role: "readWrite",db:"test"} ]})
增加节点:
> rs.add("192.168.10.88:27019")
删除节点:
> rs.remove("192.168.10.88:27019")
设置节点优先级:
> conf=rs.conf()
可从打印中看到节点_id,将_id为1的节点优先级设为2
> conf.members[1].priority=2
> rs.reconfig(conf)
> rs.status()
#打印中可以看到member中的stateStr发生变化