单节点mongodb3.4.3转换成复制集(带账号密码)
来源:互联网 发布:淘宝动漫周边网店 编辑:程序博客网 时间:2024/05/30 23:02
* 背景
现有一个单节点启动的mongodb实例,版本:3.4.3。带账号密码。目标是将该单节点转换成复制集结构,同时带账号密码登录复制集。
单节点的mongodb的配置文件为:
mongo.conf
dbpath=/usr/local/mongodb/data/dblogpath=/usr/local/mongodb/data/logs/mongodb.loglogappend=truejournal=truequiet=trueport=27017fork=trueauth=true
链接字符串为:
mongodb://user:passed@10.1.161.94:27017/dbName
* 步骤
- 1 修改原先的配置文件为:mongod.yml
systemLog: destination: file path: "/usr/local/mongodb/data/logs/mongodb.log" logAppend: true quiet: truestorage: dbPath: "/usr/local/mongodb/data/db" journal: enabled: trueprocessManagement: fork: truenet: bindIp: localhost,10.1.161.94 port: 27017security: keyFile: "/usr/local/mongodb/keyFile" replication: replSetName: "rs0"
- 2 生成一个为replica set 成员准备的SSL KEY文件
> touch keyFile> openssl rand -base64 741 > keyFile> chmod 600 keyFile
这里keyFile的权限给600就够了,不要给777,否则mongodb实例启动不起来,会报权限too open。
- 3 以新配置文件重新启动该实例。
> ./bin/mongod --config mongod.yml
- 4 登录该实例,初始化复制集
> ./bin/mongo MongoDB shell version v3.4.3connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.3> use adminswitched to db admin> db.auth("user","passed")1> rs.initiate()
- 5 目前该复制集只有一个节点,在另外一台机器上部署另外两个节点:10.1.161.95:27017 10.1.161.95:28017
将keyFile复制过去,配置文件分别为:
mongod_2.yml
systemLog: destination: file path: "/usr/local/mongodb/data_2/logs/mongodb.log" logAppend: true quiet: truestorage: dbPath: "/usr/local/mongodb/data_2/db" journal: enabled: trueprocessManagement: fork: truenet: bindIp: localhost,10.1.161.95 port: 27017security: keyFile: "/usr/local/mongodb/keyFile" replication: replSetName: "rs0"
mongod_3.yml
systemLog: destination: file path: "/usr/local/mongodb/data_3/logs/mongodb.log" logAppend: true quiet: truestorage: dbPath: "/usr/local/mongodb/data_3/db" journal: enabled: trueprocessManagement: fork: truenet: bindIp: localhost,10.1.161.95 port: 28017security: keyFile: "/usr/local/mongodb/keyFile" replication: replSetName: "rs0"
- 6 启动另外2个节点,登录主节点10.1.161.94:27017,将这2个几点添加进复制集。
> rs.add("10.1.161.95:27017")> rs.add("10.1.161.95:28017")
- 7 查看复制集状态
> rs.status(){ "set" : "rs0", "date" : ISODate("2017-12-12T02:01:31.751Z"), "myState" : 2, "term" : NumberLong(7), "syncingTo" : "10.1.161.95:27017", "heartbeatIntervalMillis" : NumberLong(2000), "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "appliedOpTime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "durableOpTime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) } }, "members" : [ { "_id" : 0, "name" : "10.1.161.94:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 59968, "optime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "optimeDate" : ISODate("2017-12-12T02:02:08Z"), "syncingTo" : "10.1.161.95:27017", "configVersion" : 3, "self" : true }, { "_id" : 1, "name" : "10.1.161.95:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 59966, "optime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "optimeDurable" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "optimeDate" : ISODate("2017-12-12T02:02:08Z"), "optimeDurableDate" : ISODate("2017-12-12T02:02:08Z"), "lastHeartbeat" : ISODate("2017-12-12T02:01:29.913Z"), "lastHeartbeatRecv" : ISODate("2017-12-12T02:01:30.306Z"), "pingMs" : NumberLong(0), "electionTime" : Timestamp(1512983310, 1), "electionDate" : ISODate("2017-12-11T09:08:30Z"), "configVersion" : 3 }, { "_id" : 2, "name" : "10.1.161.95:28017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 59966, "optime" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "optimeDurable" : { "ts" : Timestamp(1513044128, 1), "t" : NumberLong(7) }, "optimeDate" : ISODate("2017-12-12T02:02:08Z"), "optimeDurableDate" : ISODate("2017-12-12T02:02:08Z"), "lastHeartbeat" : ISODate("2017-12-12T02:01:29.913Z"), "lastHeartbeatRecv" : ISODate("2017-12-12T02:01:30.021Z"), "pingMs" : NumberLong(0), "syncingTo" : "10.1.161.95:27017", "configVersion" : 3 } ], "ok" : 1}
- 8 复制集的链接字符串为:
mongodb://user:passed@10.1.161.94:27017,10.1.161.95:27017,10.1.161.95:28017/dbName?replicaSet=rs0
阅读全文
0 0
- 单节点mongodb3.4.3转换成复制集(带账号密码)
- MongoDB复制集——如何将单节点转换成复制集
- MongoDb3配置远程连接-(带授权)即必须用户名密码来远程登录(win10)
- goldengate_单节点单双项复制
- mongoDB3.4(一)单个节点centos下 yum安装
- MongoDB学习记录09-分片-单节点(mongodb3.2版本以前)
- C语言发邮件(带账号密码认证),简单的libesmtp实例
- mongodb3.0 单机数据迁移 分片复制集
- asp.net调用带账号密码的webservice
- 根据带账号密码的wsdl地址生成java代码
- mongo复制集(无仲裁节点)
- mongoDB3.4主从复制实现
- 账号密码
- 安装Mongodb3.0.6单实例
- ios 1.5版本 账号与安全(unique 编码转换,URLencode编码转换,密码格式的限制)
- [各种面试题] 复制带随机节点的链表
- 记住账号密码 (根据输入的账号,密码框自动输入有效密码)
- JS读取cookie(记住账号密码)
- Socket send函数和recv函数详解
- a 超链接
- 笔记:centOS 7修改ip地址
- 泛型字典
- 使用StaggeredGridLayoutManager瀑布流,Glide显示图片
- 单节点mongodb3.4.3转换成复制集(带账号密码)
- 《代码整洁之道》摘录
- 单片机入门学习二 51单片机学习一
- openWRT 移植EC20
- SMO优化算法
- swift 小 demo
- oracle的低阶操作(不定时更新)
- MFC-UpdateData(false)和UpdateData(true)的区别
- CefSharp 集成谷歌浏览器详解(四)--官网示例解析3 RegisterJsObject CefSharpSchemeHandlerFactory