MongoDB副本集搭建
2021/10/18 19:11:23
本文主要是介绍MongoDB副本集搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Mongodb副本集搭建
1,下载mongodb包
社区版
https://www.mongodb.com/try/download
安装步骤
mkdir -p /opt/mongodb-replica
cd /opt/mongodb-replica
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.6.tgz
tar xf mongodb-linux-x86_64-rhel70-4.4.6.tgz
mv mongodb-linux-x86_64-rhel70-4.4.6 mongodb
vim /etc/profile
在下列文件里面加入环境变量
vim ~/.bash_profile或者在文件/etc/profile里面添加如下环境变量
export PATH="$PATH:/opt/mongodb-replica/mongodb/bin"
[root@master-cluster ~]# . ~/.bash_profile 或者[root@master-cluster ~]# sourch ~/.bash_profile
创三个mogodb实例配置
[root@master-cluster ~]# mkdir -pv /opt/mongodb-replica/mongodb1/{conf,log,pid,data}
[root@master-cluster ~]# mkdir -pv /opt/mongodb-replica/mongodb2/{conf,log,pid,data}
[root@master-cluster ~]# mkdir -pv /opt/mongodb-replica/mongodb3/{conf,log,pid,data}
在每个实例添加配置,修改对应的配置文件里面的路径跟端口
[root@master-cluster mongodb-replica]# vim mongodb1/conf/mongodb.conf
!注意4.4.6版本配置文件以yaml文件格式,格式很重要
storage:
dbPath: /opt/mongodb-replica/mongodb1/data
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /opt/mongodb-replica/mongodb1/log/mongod.log
processManagement:
fork: true
pidFilePath: /opt/mongodb-replica/mongodb1/pid/mongod.pid
net:
port: 27011
bindIp: 0.0.0.0
maxIncomingConnections: 20000
replication:
replSetName: "test"
编写启动脚本
[root@master-cluster mongodb-replica]# vim start.sh
. ~/.bash_profile
mongod -f /opt/mongodb-replica/mongodb1/conf/mongodb.conf
mongod -f /opt/mongodb-replica/mongodb2/conf/mongodb.conf
mongod -f /opt/mongodb-replica/mongodb3/conf/mongodb.conf
启动三个实例
[root@master-cluster mongodb-replica]# sh start.sh
配置副本集
[root@master-cluster mongodb-replica]# mongo --port 27011
> use admin
switched to db admin
test:SECONDARY> rs.initiate( { _id: "test", members: [ { _id: 0, host: "192.168.113.1:27011" }, { _id: 1, host: "192.168.113.2:27012" }, { _id: 2, host: "192.168.113.3:27013",arbiterOnly:true } ] })
rbiterOnly:true 仲裁节点
查看副本集状态
test:PRIMARY> rs.status()
登录两个从节点执行
test:ARBITER> db.getMongo().setSecondaryOk()
新版本db.getMongo().setSecondaryOk() #设置从节点为只读数据库
旧版本是db.getMongo().setSlaveOk() #设置从节点为只读数据库
创建超级用户
test:PRIMARY> db.createUser({user: "hcadmin", pwd: "Root#123", roles: [{role: "root", db: "admin"}]})
注意!
db: "admin" 是授权用户操作的库的权限
创建读写账号及授权多个库案例
test:PRIMARY> db.createUser({user: "hcwx", pwd: "hcwx", roles: [{role: "readWrite", db: "hcwx,hcwx_test"}]})
登录mongo并创建授权的读写账号的库
[root@master-cluster ~]# mongo --port 27012 -u hcwx -p 'hcwx' --authenticationDatabase admin
test:PRIMARY> use hcwx_test
test:PRIMARY> use hcwx
db.route.insert({"name":"菜鸟教程"}) (创建集合并插入数据,route是hcwx库的集合,创建的库不插入集合数据是不会显示数据库名的)
角色参数详解
创建key文件
[root@ ~]# openssl rand -base64 90 > /opt/mongodb-replica/mongodb1/conf/keyfile
修改权限
chmod 600 /opt/mongodb-replica/mongodb1/conf/keyfile
拷贝到各个节点
cp /opt/mongodb-replica/mongodb1/conf/keyfile /opt/mongodb-replica/mongodb2/conf/keyfile
cp /opt/mongodb-replica/mongodb1/conf/keyfile /opt/mongodb-replica/mongodb3/conf/keyfile
修改每个实例的配置文件添加如下内容修改为各自实例的路径配置
security:
authorization: enabled
clusterAuthMode: keyFile
keyFile: /opt/mongodb-replica/mongodb1/conf/keyfile
添加mongodb停止脚本
[root@master-cluster mongodb-replica]# vim stop.sh
. ~/.bash_profile
mongod -f /opt/mongodb-replica/mongodb1/conf/mongodb.conf -shutdown
mongod -f /opt/mongodb-replica/mongodb2/conf/mongodb.conf -shutdown
mongod -f /opt/mongodb-replica/mongodb3/conf/mongodb.conf -shutdown
添加配置后重启mongdb三个实例
[root@master-cluster mongodb-replica]# sh stop.sh 停止
[root@master-cluster mongodb-replica]# sh start.sh 启动
认证模式登录
mongo --port 27011 -u hcadmin -p 'Root#123' --authenticationDatabase admin
Mongodb备份脚本案例
Java程序连接副本集的方式
mongodb://hcwx:hcwx@192.168.113.1:27011,192.168.113.2:27012,192.168.113.3:27013/hcwx?replicaSet=test&authSource=admin
这篇关于MongoDB副本集搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南