1. 在mongodb文件目录创建对应的几份副本文件
1份副本集文件需要新建:1个data文件夹,1个log文件夹,1个congfig启动配置文件
我这里是创建1主2从副本集,所有需要额外新建2份,如图:
![](https://img.haomeiwen.com/i5768327/14a37f33260faff3.png)
config.conf 内容:
![](https://img.haomeiwen.com/i5768327/12152cef10dae58a.png)
config1.conf 内容:
![](https://img.haomeiwen.com/i5768327/1530e99b825b9397.png)
config2.conf 内容:
![](https://img.haomeiwen.com/i5768327/98e5c93233ffe337.png)
2. 初始化副本集群
1.先启动主mongodb实例
sudo mongod -f config.conf
注意:宝塔终端运行此命令,前面的sudo一定要加,如果运行失败,查看/data目录下是否有mongod.lock文件,删之后重新运行此命令
2.连接主数据集
mongosh -port 9999
3.运行:
config={
_id : "rs0",
members: [
{ _id: 0, host: "127.0.0.1:9999",priority:3 },
{ _id: 1, host: "127.0.0.1:9997",priority:2 },
{ _id: 2, host: "127.0.0.1:9998",priority:1}
]
}
回车确认
再执行指令rs.initiate(config)
至此副本集初始化完成
3. 开启集群权限
1.先关闭所有Mongodb:
当前副本数据集执行命令:db.shutdownServer()
2.修改3个启动文件config.conf、config1.conf 、conf2,conf:
config1.conf:
![](https://img.haomeiwen.com/i5768327/94fb6e23af0a1440.png)
config2.conf:
![](https://img.haomeiwen.com/i5768327/e2d976bc186a377d.png)
config3.conf:
![](https://img.haomeiwen.com/i5768327/f50f32107c53da3d.png)
3.生成keyFile(副本集之间权限验证方式) 文件:
keyFile文件生成:
先手动先在宝塔面板,mongodb文件夹目录下创建key.txt 空文件
运行命令:
- openssl rand -base64 756 > key.txt
我这里在mongodb文件夹根目录,此文件存放在与bin目录同级即可 - 修改此文件权限
宝塔终端运行 sudo chmod 600 key.txt
注意:权限只能是 600, 高或者低都会出错
如果命令一直提示失败,可手动点击权限修改值为600...
image.png
image.png
4. 启动这3个mongodb 实例(副本集)
sudo mongod -f config.conf
sudo mongod -f config1.conf
sudo mongod -f config2.conf
宝塔终端运行此命令,前面的sudo一定要加,如果运行失败,检查这3个数据集目录/data,/data1,/data2是否有mongod.lock文件,有则删除重新运行上面的命令
注:主副本实例可读写,2从副本只可读,不能写。
连接数据集方式有2种:
-
shell命令:
读的权限在从副本每次启动数据集后运行命令:
rs.secondaryOk(),方可正常读数据。 -
工具 url方式连接,后缀带 readPreference=secondary 效果同上:
可视化工具 - Mongodb Compass 连接
![](https://img.haomeiwen.com/i5768327/5686ccd8fc4fc67a.png)
开发工具连接
![](https://img.haomeiwen.com/i5768327/1cd4b4d5c00ea2fe.png)
网友评论