一、环境说明
操作系统:Centos7.6
Mongodb 3.2.1 的rpm包
mongodb-org-server-3.2.1-1.el7.x86_64.rpm mongodb-org-tools-3.2.1-1.el7.x86_64.rpm mongodb-org-mongos-3.2.1-1.el7.x86_64.rpm mongodb-org-shell-3.2.1-1.el7.x86_64.rpm mongodb-org-3.2.1-1.el7.x86_64.rpm
集群模式:Replica Set,一个主节点两个从节点,没有仲裁节点
节点 IP primary 172.16.20.29 secondary 172.16.20.30 secondary 172.16.20.31 二、离线安装
1、关闭防火墙
关闭三台机器的防火墙:
systemctl stop firewalld.service systemctl disable firewalld.service
注意:如果后面端口还是不通,可以考虑是否是Selinux的影响。
2、离线安装mongodb
在三台机器上依次执行安装mongodb的脚本:
bash mongo_install.sh
具体脚本信息如下:
#!/bin/bash rpm -ivh mongodb-org-server-3.2.1-1.el7.x86_64.rpm rpm -ivh mongodb-org-tools-3.2.1-1.el7.x86_64.rpm rpm -ivh mongodb-org-mongos-3.2.1-1.el7.x86_64.rpm rpm -ivh mongodb-org-shell-3.2.1-1.el7.x86_64.rpm rpm -ivh mongodb-org-3.2.1-1.el7.x86_64.rpm systemctl start mongod EXCODE=$? if [ "$EXCODE" == "0" ]; then echo '-------------------------------------' echo 'Mongo install Sucess!' echo '-------------------------------------' fi systemctl status mongod
注意:因我司机房环境特殊,无法连通外网,故使用rpm包形式进行安装。同时也解决了tar包启动中要创建用户、注册为服务、设置开机启动的繁琐事项。如果可以访问外网,也可以使用yum在线安装。
三、集群配置
1、生成密钥文件
第一台主机上执行:
openssl rand -base64 756 > /var/lib/mongo/keyFile
chmod 600 /var/lib/mongo/keyFile
chown -R mongod:mongod /var/lib/mongo/keyFile
其他两台主机复制第一台生成的keyFile文件(通过lszrz 或者 scp 或者 ftp),并执行以下命令:
cp keyFile /var/lib/mongo/
chmod 600 /var/lib/mongo/keyFile
chown -R mongod:mongod /var/lib/mongo/keyFile
2、修改监听,配置集群名称
三台机器依次做如下操作
1)修改监听:
sed -i "s/bindIp: 127.0.0.1/bindIp: 0.0.0.0/g" /etc/mongod.conf
2)配置集群名称:
cat >> /etc/mongod.conf << EOF
replication:
oplogSizeMB: 1024
replSetName: mars
EOF
右上角bash复制代码存在bug,会去除缩进。请尽量使用鼠标右键复制。
3)重启
三台机器依次重启服务:
systemctl restart mongod
3、初始化集群
在第一台主机上,执行mongo
命令,进入mongo shell:
use admin
# 设置集群配置(根据具体情况修改IP和端口)
config = {_id:"mars",members:[{_id:0,host:'172.16.20.29:27017',priority :100},{_id:1,host:'172.16.20.30:27017',priority:100},{_id:2,host:'172.16.20.31:27017',priority:100}]}
# 初始化集群
rs.initiate(config)
# 查看集群状态
rs.status()
二、认证配置
1、创建用户
在第一台机器上
在mongo shell中输入:
创建管理员账户:
db.createUser({user: "admin",pwd: "xxxxxx",roles: [ { role: "userAdminAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" }]})
创建客户端账户:
db.createUser({user: "用于客户端用户名",pwd: "用于客户端密码",roles: [ "readWriteAnyDatabase"]})
退出mongo shell:exit
2、开启认证
在所有三台机器上
在shell终端中输入:
cat >> /etc/mongod.conf << EOF
security:
authorization: enabled
keyFile: /var/lib/mongo/keyFile
EOF
3、重启
全部三个几点,一次重启
systemctl restart mongod
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com