我正在尝试部署mongodb副本集。我已经将我的mongodb实例作为副本的主要内容。现在我正在尝试添加另一个托管在不同iP地址的mongodb实例,作为副本的辅助,但是我收到以下错误:
rs0:PRIMARY> rs.add("<ip address>:27017")
{
"ok" : 0,
"errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2",
"code" : 103
}
我做错了什么?
答案 0 :(得分:8)
当我试图在同一台机器上运行两个mongod实例时,我遇到了这个问题。当我提供像
时,它会抛出错误foreach($AllLinesArray1 as $key => $singleLine)
{
$Line_textarea1 = $AllLinesArray1[$key];
$Line_textarea2 = $AllLinesArray2[$key];
$Line_textarea3 = $AllLinesArray3[$key];
//your MySQL code
$insert_query = "INSERT INTO tablename( FirstNo , SecondNo, ThirdNo ) VALUES ($Line_textarea1, $Line_textarea2, $Line_textarea3)";
}
其中 rs.add("localhost:27027")
(or)
rs.add("127.0.0.1:27027")
是次要的端口号。
<强>解决方案:强>
传递主机名而不是ip地址
27027
答案 1 :(得分:0)
新添加的副本集成员的IP地址是否解析为localhost?或者,您现有的成员是否已解析为localhost?无论哪种方式,副本集都不允许混合localhost / non-localhost配置。
查看此邮件的source code location。
此外,Mongo guide on sharding说明了这一点:
如果使用“localhost”或127.0.0.1作为主机名部分 任何主机标识符,例如addShard或的主机参数 --configdb运行时选项的值,然后您必须使用 “localhost”或127.0.0.1用于任何MongoDB的所有主机设置 集群中的实例。如果混合使用localhost地址和远程地址 主机地址,MongoDB会出错。
同样适用于副本集。