尝试将现有的mongodb实例转换为副本集时如何解决“未设置会话集合”错误

时间:2018-12-31 10:54:22

标签: mongodb mongodb-replica-set

我使用以下链接安装了最新版本的mongodb(v4.0.5) https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 现在,我正在按照以下教程中提供的说明尝试设置复制 但是,只要我在“ 2.通过发出以下命令在您自己的外壳窗口中启动mongod实例”处尝试该命令, 它给我以下错误 “未设置会话收集;请等到下一个会话刷新间隔:尚未配置复制”

我使用的命令:mongod --replSet rs0 --port 27019 --bind_ip localhost,[MY_IP] --dbpath / srv / mongodb / rs0-2 --smallfiles --oplogSize 128

该命令的更详细的输出如下:

const

我尝试遵循其他教程,在这些教程中,命令没有--ip_bind选项,但我仍然遇到相同的错误。 我尝试在网上搜索该特定错误,但没有找到解决我错误的方法。

1 个答案:

答案 0 :(得分:0)

您需要使用rs.initiate()对其进行初始化。

启动后,您可以从其他终端运行该

mongo --eval 'rs.initiate();'

如果您熟悉docker,则可以重现错误和初始化:

docker run --rm -it mongo:4.0 /bin/bash -c "\
    mongod --replSet rs0 --fork --logpath /var/log/mongodb/mongod.log &&\
    sleep 5 &&\
    mongo --eval 'rs.initiate();' &&\
    tail -n +0 -f /var/log/mongodb/mongod.log"

我使用--fork来运行mongod作为守护进程,以便稍后可以调用rs.initiate()