服务器端口地址 | 默认角色 |
---|---|
10.13.8.232:27017 | primary |
10.5.101.8:27017 | secondary |
10.16.4.200:27110 | arbiter |
# mkdir -p /data/mongodb/data
# mkdir -p /data/mongodb/log
# mkdir -p /data/mongodb/keyfile
1.去官网上下载mongodb 版本:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
2.分别上传到3台机器上,并解压,修改目录名,删除安装包:
[/usr/local/]$ tar -xzvf mongodb-linux-x86_64-rhel70-4.0.10.tgz
[/usr/local/]$ mv mongodb-linux-x86_64-rhel70-4.0.10 mongodb-4.0.10
[/usr/local/]$ rm -rf mongodb-linux-x86_64-rhel70-4.0.10.tgz
/usr/local/mongodb-4.0.10/]$ mkdir conf
[/usr/local/mongodb-4.0.10/]$ cd conf
[/usr/local/mongodb-4.0.10/conf/]$ rz
[/usr/local/mongodb-4.0.10/bin/]$ ./mongod -f /usr/local/mongodb-4.0.10/conf/mongodb.conf
可通过 ps -aux|grep mongo 或者 lsof -i:27017来查看是否启动成功
[/usr/local/mongodb-4.0.10/bin/]$ ./mongo
// 下面配置中的_id:"mongors"要与mongodb.conf文件中的replSetName一致。priority 参数的值决定了选举中该节点的优先级。值越高,优先级越高
> config = { _id: "mongors", members: [
{_id: 0, host: "10.13.8.232:27017", priority:2},
{_id: 2, host: "10.5.101.8:27017", priority:1},
{_id: 1, host: "10.16.4.200:27110",arbiterOnly:true}]
}
// 初始化副本集,配置成功:"ok" : 1
> rs.initiate(config)
// 查看副本集状态,确认主节点
> rs.status()
// 查看副本同步状态
> db.printSlaveReplicationInfo()
//在主节点上
> use admin
> db.createUser({user: 'root', pwd: 'pwd', roles: ['root']})
> db.auth('root','pwd')
> use ApiHub
> db.createUser({user: 'test', pwd: 'testpwd', roles: ['readWrite']})
> db.auth('test', 'testpwd')
//查看创建的用户
> use admin
> db.system.users.find().pretty()
> use admin
> db.shutdownServer() #关闭mongo后台进程
(1)创建 keyfile 文件。在其中1台机器上执行以下命令生成 keyfile 文件(修改权限的chmod命令使用方法):
//生成key
[/usr/local/]$ openssl rand -base64 745 > /data/mongodb/keyfile/keyfile
[/usr/local/]$ chmod 600 /data/mongodb/keyfile/keyfile
(2)将这份keyfile文件拷贝到另外2台机器上的相同路径下:/data/mongodb/keyfile/。
(3)分别在三个节点的 mongod.conf 文件中添加以下配置:
security:
keyFile: "/data/mongodb/keyfile/keyfile"
authorization: enabled
(4)重新启动3个节点
./mongod -f /usr/local/mongodb-4.0.10/conf/mongodb.conf
(4)进行认证(因为已启用身份认证功能):
> use admin
> db.auth('root','pwd')
若验证主从节点切换成功,则配置 OK。
根据实际情况,需要将10.5.101.8:27017变成10.5.101.9:27017。
[/usr/local/mongodb-4.0.10/bin]$ ./mongo
mongors:PRIMARY> use admin
mongors:PRIMARY> db.auth('root','pwd')
mongors:PRIMARY> rs.add("10.5.101.9:27017")
// 使用 rs.printReplicationInfo() 来确认复制集的oplog状态。
mongors:PRIMARY> rs.printReplicationInfo()
// 删除不再使用的从节点
mongors:PRIMARY> rs.remove("10.5.101.8:27017")
//使用rs.status()或者 rs.conf()来确认配置
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log"
logAppend: true
storage:
dbPath: "/data/mongodb/data/"
journal:
enabled: true
wiredTiger:
engineConfig:
cacheSizeGB: 6
replication:
oplogSizeMB: 10000
replSetName: "mongors"
processManagement:
fork: true
pidFilePath: "/data/mongodb/mongodb.pid"
net:
bindIp: 127.0.0.1,10.13.8.232,10.5.101.8,10.16.4.200
port: 27017
setParameter:
enableLocalhostAuthBypass: false
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有