我是mongoDB的新手,我正在尝试使用以下内容。
res = rs.initiate(
{
"_id" : "ireland",
"members" : [
{ _id:0,host:myName+".local:"+"27000" },
{ _id:1,host:myName+".local:"+"27001" },
{ _id:2,host:myName+".local:"+"27002" }
]
}
);
然后我收到以下错误消息。
{
"ok" : 0,
"errmsg" : "This node was not started with the replSet option",
"code" : 76,
"codeName" : "NoReplicationEnabled"
} 我在网上环顾四周,没有运气。我在这里发现了一些类似的问题,但没有一个答案有帮助。
答案 0 :(得分:0)
在启动复制集之前,需要使用--replSet选项在所有节点(端口)上启动mongo服务器。 为此,请使用以下命令在每个端口上启动mongo服务器(每个都在新的cmd提示符下):
mongod --dbpath [databasepath] --port 27000 --replSet "ireland"
mongod --dbpath [databasepath] --port 27001 --replSet "ireland"
mongod --dbpath [databasepath] --port 27002 --replSet "ireland"
服务器运行后,您可以使用以下命令启动复制:
res = rs.initiate(
{
"_id" : "ireland",
"members" : [
{ _id:0,host:myName+".local:"+"27000" },
{ _id:1,host:myName+".local:"+"27001" },
{ _id:2,host:myName+".local:"+"27002" }
]
}
确保复制配置的 _id 字段与replSet名称相同。
答案 1 :(得分:0)
对我来说,解决方案是杀死MongoDB的冗余实例。
在Linux或Windows(使用git bash)上,输入命令以获取进程ID:
SDL_Renderer
在Linux上,使用以下命令终止进程:
if (isset($_GET["page"] ))
{
$page = $_GET["page"];
}
else
{
$page=1;
};
$index= ($page-1) * $limit;
$sql = "SELECT * FROM survey LIMIT $index, $limit";
$result = mysqli_query($con, $sql);
echo "<div style='overflow: auto;'>";
echo "<table width=50% border=5px align=center >
<tr>
<th height=35 >Opinion</th>
<th>Date</th>
</tr>";
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo '<tr align=center height=30 >';
echo "<td>" . $row['Opinion'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
}
}
else {
echo "0 results";
}
echo "<a href='admin.php?page=".($page-1)."' class='button'>Previous</a>   ";
echo "<a href='admin.php?page=".($page+1)."' class='button'>Next</a>";
在Windows上,使用以下命令终止进程:
ps -alW | grep mongod.
答案 2 :(得分:0)
我的环境是Windows,解决方案是重新启动MongoDB
进程:
Task Manager->Services->MongoDB [run restart]