MongoDB 主从配置
https://www.jianshu.com/p/675f4712bf3a
Amazon Linux 2 AMI 下 MongoDB 3.2 主从配置
- 配置鉴权
1 | mongo |
- 秘钥 (主从间的同步需要安全机制)
1 | openssl rand -base64 753 > yourKeyFile |
将yourKeyFile放到MongoDB的数据存储路径下,也就是上面配置文件中的dbPath,上面的例子为/var/lib/mongo,并授权,注意你的秘钥存放路径
1 | chmod 600 yourKeyFile |
拷贝yourKeyFile分别放到其他mongo服务器的数据存储路径下,也需要上面的600授权
- 配置复制集和鉴权
节点为security和replication,机器都需要配置
1 | security: |
- 重启MongoDB服务,并进入master节点
连接后,由于开启了鉴权,所以需要认证
1 | # 使用admin |
输入配置,这里的第一个_id需要和配置里面的replSetName一致
1 | myReplSet_conf={ |
初始化
1 | rs.initiate(myReplSet_conf); |
若出现{ “ok” : 1}则表示配置成功
==遇到了”has data already, cannot initiate set”的问题==
1 | 排错步骤: |
- 退出再重启则可以看到PRIMARY标识,在192.168.1.245登录,则看到的是SECONDARY
查看状态:
1 | > rs.status() |
==“not master and slaveok=false”错误及解决方法==
1 | 因为SECONDARY是不允许读写的,如果非要解决,方法如下: |
==从机器上登录查询报错:”errmsg” : “node is not in primary or recovering state”==
1 | 查看状态发现从机器是: |
- 测试是否能够自动切换master
先关闭master服务,然后进入原先secondary的服务,查看是否被提升成master,如果是,则测试成功。