以下教程为MongoDB 4.0.*版本在Centos 7.5复制集部署教程,采用1主2从模式,同时开启验证。
安装MongoDB
参看往期教程,使用脚本一次性安装三台。
[MongoDB安装脚本](https://blog.youkuaiyun.com/arroganceee/article/details/111836945)
注意注释掉脚本中如下内容:
#如部署集群不要以下内容,切片,复制集
#配置管理员,开启访问验证
#账号admin,密码password
$cur_dir/mongodb/bin/./mongo<<EOF
use admin;
db.createUser({user:"admin",pwd:"password",roles:[{ role: "root", db: "admin" }]});
EOF
cat >>$cur_dir/mongodb/bin/mongodb.conf<<EOF
auth=true
EOF
主机创建admin用户
假设三台机器IP为别为:
192.168.1.1
192.168.1.2
192.168.1.3
任意选取一台为主机,此处选192.168.1.1
使用Robo 3T或直接使用命令行,在192.168.1.1新建admin用户
use admin
db.createUser(
{
user: "admin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
}
)
主机创建keyfile
在主机完成创建admin用户后,需创建keyfile文件,以达到主从机器相互认证。
主机创建认证key文件,并分发到两台从服务器,保证每台服务器key文件路径一致,均需chmod 600
openssl rand -base64 102 >/opt/mongodb/key
chmod 600 /opt/mongodb/key
完成此步骤后,注意检查3台机器是否都有key文件,key文件权限是否均为600
修改配置文件
停每一台数据库服务,修改每一台数据库配置文件,修改auth=true,添加key文件路径,添加rs信息
auth=true
keyFile=/opt/mongodb/key #此处为上一步创建keyfile路径
replSet=One #此出为副本集名
启每台机器数据库
进入主机配置副本集
mongo -u FOne -p FOne_2020
use admin
rscongfig={"_id":"One",members:[{_id:0,host:"192.168.1.1:27017"},{_id:1,host:"192.168.1.2:27017"},{_id:2,host:"192.168.1.3:27017"}]}
rs.initiate(rscongfig)
#出现'ok':1 表示成功
rs.status()
health:1 //1表明状态是正常up,0表明异常down
state:1 // 1表明是primary,2表明是second,即做备份的机器
使用Robo 3T工具进行链接测试
新建复制集连接,启用验证,链接成功即可