mongodb - 无法连接到 Compass 中的复制集

标签 mongodb docker-compose replicaset

我正在尝试使用 Compass 连接到我的本地 mongodb 复制集,但它正在将连接 0 到 localhost:27017 关闭

这是我的 docker-compose:

mongo:
    image: library/mongo
    container_name: mongodb
    ports:
      - '27017:27017'
    entrypoint: [ "/usr/bin/mongod", "--port", "27017", "--bind_ip", "localhost", "--replSet", "rs0" ]

启动容器后,我正在运行:

rs.initiate()

所有这些都使用本教程:https://docs.mongodb.com/manual/tutorial/convert-standalone-to-replica-set/

这是我尝试使用的连接字符串:

mongodb://localhost:27017/test?replicaSet=rs0

有人可以帮助我吗?

最佳答案

为此:首先转到您的 mongo 路径。在windows上,路径是这样的:

C:\Program Files\MongoDB\Server\4.0\bin

在这里你可以找到mongo.exe cmd,运行它并输入

db.adminCommand( { shutdown : 1} )

这将关闭您的实例。

接下来,使用管理员权限在 cmd 中转到系统上的 mongo 路径:

cd C:\Program Files\MongoDB\Server\4.0\bin

根据Official mongo document about Convert a Standalone to a Replica Set 输入以下命令:

mongod --port 27017 --dbpath "C:\Program Files\MongoDB\Server\4.0\data" --replSet rs0 --bind_ip localhost

其中 --dbpath 是您的数据库路径, --repl 设置您的复制名称。现在返回 mongo shell 并输入

 rs.initiate()

并通过指定“副本集名称”通过指南针进行连接

Replica Set Name in mongodb

一切都会好起来的。

*** 顺便说一句,请记住,复制在您的开发过程中必须处于事件状态并保持运行。

关于mongodb - 无法连接到 Compass 中的复制集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059310/

相关文章:

docker - 如何让 Docker Compose 构建更快?

linux - 在 Linux 中为 MongoDB 创建副本集

mongodb - 带有rs.add()的MongoDB脚本未按预期执行

javascript - 在 MongoDB 中存储大数组

javascript - 在 MongoDB 聚合中返回带数据的计数

python - 带有 NoSQL 数据库的 Django

mongodb - 最近的副本集读取偏好仍然很慢

mongodb - Meteor 将自定义字段添加到 Meteor.users : should I do it?

c# - Azure应用程序服务多容器-对内部容器的http请求(docker compose)

Docker Postgres 清除所有数据