MonggoDB复制集群搭建
服务节点:
192.168.0.31,192.168.0.32,192.168.0.33
1. 部署安装:
上传 mongodb-linux-x86_64-rhel70-4.2.7.tgz 到/opt/szadmin下
➢ 解压
# tar zxvf mongodb-linux-x86_64-rhel70-4.2.7.tgz
➢ 包重命名为mongodb
# mv mongodb-linux-x86_64-rhel70-4.2.7 mongodb
➢ 进入mongodb 目录,给 bin 目录下的执行文件赋权
# chmod -R 777 bin
➢ 在mongodb 下新增加一个 mongodb.conf 的配置文件
# touch mongodb.conf
➢ 在mongodb 下新增加一个 data 文件夹
# mkdir data
➢ 在data 文件夹下新增加一个 db 文件夹
# mkdir db
➢创建logs 文件夹
# mkdir logs
➢ 在logs 文件夹下新增加一个 mongodb.log 文件
# touchmongodb.log
➢生成安全密钥
openssl rand -base64 756 >/opt/sz/mongodb/mongodb.keyfile
➢修改权限为只读
chmod 400./mongodb.keyfile
将mongodb.keyfile复制到其他几个节点上
2. 处理配置
Monggo.conf配置如下:
上传以上配置文件至:/opt/sz/mongodb路径下:
启动monggoDB
./bin/mongod -config./mongodb.conf
连接
./bin/mongo
初始化集群集群节点
rs.initiate({_id :"myrs",members:[{_id:0,host:"192.168.31:27017"},{_id :1,host:"192.168.32:27018" },{_id:2,host:"192.168.33:27019"}]});
注意事项:
在集群中任一节点中执行rs.initiate注意不能全部执行否则后面增加节点会出现
NodeNotFound: Quorumcheck failed because not enough voting nodes responded;
检查集群节点状态
rs.status();
需要确认全部节点stateStr都为PRIMARY和SECONDARY才能进行后续步骤,否则加完用户会有问题。
3. 健全认证
[if !supportLists]Ø [endif]客户端连接:
./bin/mongo
如误执行,需全部删除,重复之前步骤重新安装
[if !supportLists]Ø [endif]添加一个超级管理员的用户
use admin
db.createUser({user:"admin",pwd:"pass@123",roles:[{"role": "root","db" : "admin"},{"role" :"userAdminAnyDatabase","db" :"admin"},{"role" : "dbOwner","db" :"admin"},{"role" : "clusterAdmin","db": "admin"}]})
show users
#验证用户
db.auth('admin','pass@123') 输出 1 代表成功
#列出所有的数据库
show dbs
退出
exit
使用创建的用户登录
./bin/mongo-uadmin -ppass@123
每个节点全部验证无误后(确保用户数据同步到各个节点)
添加认证配置:
vim mongodb.conf
追加以下配置:
security:
authorization: enabled
keyFile:"/opt/sz/mongodb/mongodb.keyfile"
如图所示:
从从节点点到主节点依次关闭(这样是为了防止其他从节点被选举为主节点),然后全部重启
关闭指令
ps -ef|grep mongod
kill pid
重新启动
./bin/mongod -config./mongodb.conf
并使用添加用户连接:
./bin/mongo -uadmin -ppass@123
再次检查集群状态
rs.status();
至此 全部搭建完成.
下来,我们继续连接使用。
网友评论