docker 搭建mongodb集群(多机,启用auth)
集群的搭建,建议一开始就启用auth,后期启用太麻烦了,可能还造成容器启动失败等问题
仲裁节点可有可无。
至少需要3个节点,可以是1主1丛1仲裁节点,也可以是1主2从(但不能是1主2仲裁,仲裁节点不备份数据,无法升为主节点)。
一主一从的Replica Set也可以部署,但是效果等同于Master/Slave集群,主节点挂掉后,从节点无法自动提升为主节点。
192.168.59.102:mongo-primary(主)
192.168.59.103:mongo-primary1(从)
192.168.59.104:mongo-primary2(从)
1、编辑三台服务器的/etc/hosts
2、创建mongo.key和mongo.conf文件(三台服务器都要创建)
创建目录
#mkdir /home/mongo/{key,conf,data}
#cd /home/mongo/key
#openssl rand -base64 756 > mongo.key
分配权限
chmod 400 mongo.key
一般的docker中的mong用户id是999
chown 999.999 mongo.key
将 mongo.key 文件发送到其它两台服务器上,用于复制集成员之间的验证。文件必须保持一致,否者验证失败
#cd /home/mongo/conf
#vi mongo.conf
添加信息,随便写写先,为了后期需要修改配置
【
security:
keyFile: /home/mongo/conf/mongo.key
】
4、创建mongo-secondary1
注意/data/db的映射,/data/db是存放数据库的目录,要自己根据实际情况映射
#docker exec -it m-p bash
#mongo
验证admin,因为开启了auth
>use admin
> db.auth("admin","123456");
1
>config = {_id:"mongo-rep", version:1, members:[{_id:0, host:"192.168.59.102:27017", priority:6}, {_id:1, host:"192.168.59.103:27017", priority:3}, {_id:2, host:"192.168.59.104:27017", priority:2}]}
激活配置
>rs.initiate(config)
登录
m-s1 和 m-s2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了