因虚拟机地址被占用,则需要重新设置ip地址,这时需要修改副本集中的相对应的IP地址配置。
1.找到mongos入口进行登录,通过mongos修改config服务器中分片副本集的IP地址:
旧ip地址:192.168.1.1
新ip地址:192.168.1.3

> use admin;
> db.auth('root','root');
> sh.status(); ##分片副本集信息及状态
> use config;
> db.shards.find();
[
	{"_id" : "shard1","host" : "shard1/192.168.1.1:27117,192.168.1.2:27117","state" : 1}{"_id" : "shard2","host" : "shard2/192.168.2.1:27117,192.168.2.2:27117","state" : 1}
]
> db.shards.update({_id:"shard1"},{$set:{"host":"shard1/192.168.1.3:27117,192.168.1.2:27117"}});
> db.shards.find();
[
	{"_id" : "shard1","host" : "shard1/192.168.1.3:27117,192.168.1.2:27117","state" : 1}{"_id" : "shard2","host" : "shard2/192.168.2.1:27117,192.168.2.2:27117","state" : 1}
]
> use admin;
> sh.status(); ##则可以看到最新的分片副本集信息
> exit

2.找到primary主机,如果都已经不存在primary主机的话,则任意进入该副本集的任意一台主机进行登录:

> use admin;
> db.auth('root','root');
> rs.config();##观察members中哪一部分需要更改,会影响下面members[n]中n的值
> rsc = rs.config();
> rsc.members[0].host = "192.168.1.3:2777";
> rs.reconfig(rsc);##如果不是primary主机,则会发生replSetReconfig should only be run on PRIMARY, but my state is REMOVED; use the \"force\" argument to override这个错误,那么则运行rs.reconfig(rsc,{"force":true});
> rs.config();##观察members中地址是否已经变更
> exit

2.1.如果登录权限登录失败则可以单机模式运行,创建root账户,再以副本集模式运行,用root账户登录。
Mongodb关闭方式见该链接:https://blog.csdn.net/qq_39741836/article/details/106519960
将conf配置文件中的replSetName: "shard1"删除,再进行启动MongoDB:

> use admin
> db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]});
> db.auth('root','root');
> exit

修改某个分片的ip地址,需以上两步即可完成。

修改config服务器的ip地址,需要以上第二步骤,修改config在其副本集中的ip地址。
再修改mongos配置文件conf中的config服务器的ip地址:
mongos关闭方式见该链接:https://blog.csdn.net/qq_39741836/article/details/106519960
以下为mongos配置文件mongos.conf:

systemLog:
    destination: file
    path: "/root/mongodb/mongos/log/mongos.log"
    logAppend: true
sharding:
    configDB: configs1/192.168.9.1:27118,192.168.9.2:27118,192.168.9.3:27118
security:
    keyFile: "/root/mongodb/key/mongodb_keyfile"
    clusterAuthMode: "keyFile"
processManagement:
    fork: true
net:
    bindIp: 0.0.0.0
    port: 27119

修改sharding.configDB的config副本集ip地址,修改完成后再启动mongos服务器:

mongos -f /root/mongodb/mongos/mongos.conf

即可完成对config服务器ip地址的修改

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐