mongodb
主从配置
新建个文件夹:mkdir replica_sets
将压缩包移动:mv mongodb-linux-x86_64-rhel70-4.2.19.tgz replica_sets/
进入文件并解压:tar -xvf mongodb-linux-x86_64-rhel70-4.2.19.tgz
进入解压完的文件:cd mongodb-linux-x86_64-rhel70-4.2.19
新增启动配置类:vi mongo_37017.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # 主节点配置 dbpath=/data/mongo/data/server1 bind_ip= 0.0 . 0.0 port= 37017 fork= true logpath=/data/mongo/logs/server1.log replSet=lagouCluster #从节点 1 配置 mongo_37019.conf dbpath=/data/mongo/data/server2 bind_ip= 0.0 . 0.0 port= 37018 fork= true logpath=/data/mongo/logs/server2.log replSet=lagouCluster #从节点 2 配置 mongo_37019.conf dbpath=/data/mongo/data/server3 bind_ip= 0.0 . 0.0 port= 37019 fork= true logpath=/data/mongo/logs/server3.log replSet=lagouCluster |
新增配置类中的文件:mkdir /data/mongo/data/server1 -p
mkdir /data/mongo/data/server2 -p
mkdir /data/mongo/data/server3 -p
mkdir /data/mongo/logs -p
将所有服务都启动
./bin/mongod -f mongo_37017.conf
./bin/mongod -f mongo_37018.conf
./bin/mongod -f mongo_37019.conf
随便进入一个服务:./bin/mongo --port 37017 (_id:集群名称配置文件一致,members:集群成员:priority:越高优先级越高,越有可能成为主库)
1 2 3 4 5 6 7 8 9 | var cfg ={ "_id" : "lagouCluster" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" , "priority" : 10 }, { "_id" : 2 , "host" : "192.168.211.136:37018" } ] } rs.initiate(cfg) //初始化 rs.status() //查看状态 |
1 2 3 4 | 在主节点上增加节点 rs.add( "192.168.211.136:37019" ) 在主节点上删除slave 节点 rs.remove( "192.168.211.136:37019" ) |
从节点同步数据:rs.slaveOk()
新增仲裁节点:(数据库安装与配置)与前面相同
1 2 3 4 5 6 7 8 9 10 11 12 13 | 在主节点下运行<br>var cfg ={ "_id" : "lagouCluster" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" , "priority" : 10 }, { "_id" : 2 , "host" : "192.168.211.136:37018" , "priority" : 0 }, { "_id" : 3 , "host" : "192.168.211.136:37019" , "priority" : 5 }, { "_id" : 4 , "host" : "192.168.211.136:37020" , "arbiterOnly" : true } //仲裁节点 ] }; // 重新装载配置,并重新⽣成集群节点。 rs.reconfig(cfg) //重新查看集群状态 rs.status() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 数据库⽂件位置 dbpath=config/config1 #⽇志⽂件位置 logpath=config/logs/config1.log # 以追加⽅式写⼊⽇志 logappend= true # 是否以守护进程⽅式运⾏ fork = true bind_ip= 0.0 . 0.0 port = 17017 # 表示是⼀个配置服务器 configsvr= true #配置服务器副本集名称 replSet=configsvr |
同时新增配置文件的两个文件:mkdir config1 logs
复制config-17017.conf到成3个配置服务:cp config-17017.conf config-17018.conf
cp config-17017.conf config-17019.conf
随便启动一个服务: ./bin/mongo --port 17017
1 2 3 4 5 6 7 8 | use admin var cfg ={ "_id" : "configsvr" , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:17017" }, { "_id" : 2 , "host" : "192.168.211.136:17018" }, { "_id" : 3 , "host" : "192.168.211.136:17019" }] }; rs.initiate(cfg) //初始化 |
分片节点1:shard1的配置:
在bin同级上新增文件:mkdir shard
进入shard新增配置文件中的文件:cd shard mkdir shard1 shard2
进入shard1新增配置文件中的文件:cd shard1 mkdir shard1-37017 shard1-37018 shard1-37019
vi shard1-37017.conf
cp shard1-37017.conf shard1-37018.conf
cp shard1-37017.conf shard1-37019.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | dbpath=shard/shard1/shard1- 37017 bind_ip= 0.0 . 0.0 port= 37017 fork= true logpath=shard/shard1/shard1- 37017 .log replSet=shard1 shardsvr= true dbpath=shard/shard1/shard1- 37018 bind_ip= 0.0 . 0.0 port= 37018 fork= true logpath=shard/shard1/logs/shard1- 37018 .log replSet=shard1 shardsvr= true dbpath=shard/shard1/shard1- 37019 bind_ip= 0.0 . 0.0 port= 37019 fork= true logpath=shard/shard1/logs/shard1- 37019 .log replSet=shard1 shardsvr= true |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 启动每个mongod 然后进⼊其中⼀个进⾏集群配置 var cfg ={ "_id" : "shard1" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" }, { "_id" : 2 , "host" : "192.168.211.136:37018" }, { "_id" : 3 , "host" : "192.168.211.136:37019" }, { "_id" : 4 , "host" : "192.168.211.136:37020" , "arbiterOnly" : true } ] }; rs.initiate(cfg) rs.reconfig(cfg) rs.status() var cfg ={ "_id" : "shard3" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:38017" }, { "_id" : 2 , "host" : "192.168.211.136:38018" , "arbiterOnly" : true } ] }; |
分片节点2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | dbpath=shard/shard2/shard2- 47017 bind_ip= 0.0 . 0.0 port= 47017 fork= true logpath=shard/shard2/logs/shard2- 47017 .log replSet=shard2 shardsvr= true dbpath=shard/shard2/shard2- 47018 bind_ip= 0.0 . 0.0 port= 47018 fork= true logpath=shard/shard2/logs/shard2- 47018 .log replSet=shard2 shardsvr= true dbpath=shard/shard2/shard2- 47019 bind_ip= 0.0 . 0.0 port= 47019 fork= true logpath=shard/shard2/logs/shard2- 47019 .log replSet=shard2 |
1 2 3 4 5 6 7 8 9 10 11 | 启动每个mongod 然后进⼊其中⼀个进⾏集群配置 var cfg ={ "_id" : "shard2" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:47017" }, { "_id" : 2 , "host" : "192.168.211.136:47018" }, { "_id" : 3 , "host" : "192.168.211.136:47019" } ] }; rs.initiate(cfg) rs.status() |
分片路由的配置:
在bin的同级目录新建文件:mkdir route/logs -p
进入route新建配置文件:cd route vi route-27017.conf
1 2 3 4 5 | port= 27017 bind_ip= 0.0 . 0.0 fork= true logpath=route/logs/route.log configdb=configsvr/ 192.168 . 211.136 : 17017 , 192.168 . 211.136 : 17018 , 192.168 . 211.136 : 17019 |
路由启动服务:./bin/mongos -f route/route-27017.conf
路由添加分片节点
1 2 3 4 | sh.status() sh.addShard( "shard1/192.168.211.136:37017,192.168.211.136:37018,192.168.211.136:37019,192.168.211.136:37020" ); sh.addShard( "shard2/192.168.211.136:47017,192.168.211.136:47018,192.168.211.136:47019" ); sh.status() |
------------恢复内容开始------------
主从配置
新建个文件夹:mkdir replica_sets
将压缩包移动:mv mongodb-linux-x86_64-rhel70-4.2.19.tgz replica_sets/
进入文件并解压:tar -xvf mongodb-linux-x86_64-rhel70-4.2.19.tgz
进入解压完的文件:cd mongodb-linux-x86_64-rhel70-4.2.19
新增启动配置类:vi mongo_37017.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # 主节点配置 dbpath=/data/mongo/data/server1 bind_ip= 0.0 . 0.0 port= 37017 fork= true logpath=/data/mongo/logs/server1.log replSet=lagouCluster #从节点 1 配置 mongo_37019.conf dbpath=/data/mongo/data/server2 bind_ip= 0.0 . 0.0 port= 37018 fork= true logpath=/data/mongo/logs/server2.log replSet=lagouCluster #从节点 2 配置 mongo_37019.conf dbpath=/data/mongo/data/server3 bind_ip= 0.0 . 0.0 port= 37019 fork= true logpath=/data/mongo/logs/server3.log replSet=lagouCluster |
新增配置类中的文件:mkdir /data/mongo/data/server1 -p
mkdir /data/mongo/data/server2 -p
mkdir /data/mongo/data/server3 -p
mkdir /data/mongo/logs -p
将所有服务都启动
./bin/mongod -f mongo_37017.conf
./bin/mongod -f mongo_37018.conf
./bin/mongod -f mongo_37019.conf
随便进入一个服务:./bin/mongo --port 37017 (_id:集群名称配置文件一致,members:集群成员:priority:越高优先级越高,越有可能成为主库)
1 2 3 4 5 6 7 8 9 | var cfg ={ "_id" : "lagouCluster" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" , "priority" : 10 }, { "_id" : 2 , "host" : "192.168.211.136:37018" } ] } rs.initiate(cfg) //初始化 rs.status() //查看状态 |
1 2 3 4 | 在主节点上增加节点 rs.add( "192.168.211.136:37019" ) 在主节点上删除slave 节点 rs.remove( "192.168.211.136:37019" ) |
从节点同步数据:rs.slaveOk()
新增仲裁节点:(数据库安装与配置)与前面相同
1 2 3 4 5 6 7 8 9 10 11 12 13 | 在主节点下运行<br>var cfg ={ "_id" : "lagouCluster" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" , "priority" : 10 }, { "_id" : 2 , "host" : "192.168.211.136:37018" , "priority" : 0 }, { "_id" : 3 , "host" : "192.168.211.136:37019" , "priority" : 5 }, { "_id" : 4 , "host" : "192.168.211.136:37020" , "arbiterOnly" : true } //仲裁节点 ] }; // 重新装载配置,并重新⽣成集群节点。 rs.reconfig(cfg) //重新查看集群状态 rs.status() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 数据库⽂件位置 dbpath=config/config1 #⽇志⽂件位置 logpath=config/logs/config1.log # 以追加⽅式写⼊⽇志 logappend= true # 是否以守护进程⽅式运⾏ fork = true bind_ip= 0.0 . 0.0 port = 17017 # 表示是⼀个配置服务器 configsvr= true #配置服务器副本集名称 replSet=configsvr |
同时新增配置文件的两个文件:mkdir config1 logs
复制config-17017.conf到成3个配置服务:cp config-17017.conf config-17018.conf
cp config-17017.conf config-17019.conf
随便启动一个服务: ./bin/mongo --port 17017
1 2 3 4 5 6 7 8 | use admin var cfg ={ "_id" : "configsvr" , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:17017" }, { "_id" : 2 , "host" : "192.168.211.136:17018" }, { "_id" : 3 , "host" : "192.168.211.136:17019" }] }; rs.initiate(cfg) //初始化 |
分片节点1:shard1的配置:
在bin同级上新增文件:mkdir shard
进入shard新增配置文件中的文件:cd shard mkdir shard1 shard2
进入shard1新增配置文件中的文件:cd shard1 mkdir shard1-37017 shard1-37018 shard1-37019
vi shard1-37017.conf
cp shard1-37017.conf shard1-37018.conf
cp shard1-37017.conf shard1-37019.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | dbpath=shard/shard1/shard1- 37017 bind_ip= 0.0 . 0.0 port= 37017 fork= true logpath=shard/shard1/shard1- 37017 .log replSet=shard1 shardsvr= true dbpath=shard/shard1/shard1- 37018 bind_ip= 0.0 . 0.0 port= 37018 fork= true logpath=shard/shard1/logs/shard1- 37018 .log replSet=shard1 shardsvr= true dbpath=shard/shard1/shard1- 37019 bind_ip= 0.0 . 0.0 port= 37019 fork= true logpath=shard/shard1/logs/shard1- 37019 .log replSet=shard1 shardsvr= true |
1 2 3 4 5 6 7 8 9 10 11 12 13 | 启动每个mongod 然后进⼊其中⼀个进⾏集群配置 var cfg ={ "_id" : "shard1" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:37017" }, { "_id" : 2 , "host" : "192.168.211.136:37018" }, { "_id" : 3 , "host" : "192.168.211.136:37019" }, { "_id" : 4 , "host" : "192.168.211.136:37020" , "arbiterOnly" : true } ] }; rs.initiate(cfg) rs.reconfig(cfg) rs.status() |
分片节点2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | dbpath=shard/shard2/shard2- 47017 bind_ip= 0.0 . 0.0 port= 47017 fork= true logpath=shard/shard2/logs/shard2- 47017 .log replSet=shard2 shardsvr= true dbpath=shard/shard2/shard2- 47018 bind_ip= 0.0 . 0.0 port= 47018 fork= true logpath=shard/shard2/logs/shard2- 47018 .log replSet=shard2 shardsvr= true dbpath=shard/shard2/shard2- 47019 bind_ip= 0.0 . 0.0 port= 47019 fork= true logpath=shard/shard2/logs/shard2- 47019 .log replSet=shard2 |
1 2 3 4 5 6 7 8 9 10 11 | 启动每个mongod 然后进⼊其中⼀个进⾏集群配置 var cfg ={ "_id" : "shard2" , "protocolVersion" : 1 , "members" :[ { "_id" : 1 , "host" : "192.168.211.136:47017" }, { "_id" : 2 , "host" : "192.168.211.136:47018" }, { "_id" : 3 , "host" : "192.168.211.136:47019" } ] }; rs.initiate(cfg) rs.status() |
分片路由的配置:
在bin的同级目录新建文件:mkdir route/logs -p
进入route新建配置文件:cd route vi route-27017.conf
1 2 3 4 5 | port= 27017 bind_ip= 0.0 . 0.0 fork= true logpath=route/logs/route.log configdb=configsvr/ 192.168 . 211.136 : 17017 , 192.168 . 211.136 : 17018 , 192.168 . 211.136 : 17019 |
路由启动服务:./bin/mongos -f route/route-27017.conf
路由添加分片节点
1 2 3 4 | sh.status() sh.addShard( "shard1/192.168.211.136:37017,192.168.211.136:37018,192.168.211.136:37019,192.168.211.136:37020" ); sh.addShard( "shard2/192.168.211.136:47017,192.168.211.136:47018,192.168.211.136:47019" ); sh.status() |
1 2 3 4 5 6 | use admin<br>db.createUser( { user: "root" , pwd: "123456" , roles:[{role: "root" ,db: "admin" }] }) |
具体某个表的权限
1 2 3 4 5 6 | use lagou_resume db.createUser({ user: "xx" , pwd: "123456" , roles:[{role: "readWrite" ,db: "集合名" }] }) |
批量关闭进程
1 2 | auth= true keyFile=data/mongodb/testKeyFile.file |
在路由配置⽂件中 设置密钥⽂件
1 2 3 4 5 6 7 8 9 10 | ./bin/mongod -f config/config- 17017 .conf ./bin/mongod -f config/config- 17018 .conf ./bin/mongod -f config/config- 17019 .conf ./bin/mongod -f shard/shard1/shard1- 37017 .conf ./bin/mongod -f shard/shard1/shard1- 37018 .conf ./bin/mongod -f shard/shard1/shard1- 37019 .conf ./bin/mongod -f shard/shard2/shard2- 47017 .conf ./bin/mongod -f shard/shard2/shard2- 47018 .conf ./bin/mongod -f shard/shard2/shard2- 47019 .conf ./bin/mongos -f route/route- 27017 .conf |
给sh赋执行权限:chmod +x shartup.sh
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)