Gol*_*den 5 mongodb node.js docker replicaset
基本上,标题已经说明了一切:我想使用官方 mongo Docker 映像将 MongoDB 作为单节点副本集运行,但我不知道如何执行此操作。
首先,我使用附加--replSet "rs0"参数启动了 Docker 映像。在目录内部/docker-entrypoint-initdb.d/我添加了一个启动脚本,该脚本运行:
rs.initiate();
Run Code Online (Sandbox Code Playgroud)
但是,无论我是否提供选项,MongoDB 都会启动(并且似乎启动成功),但我注意到能够使用 Node.js MongoDB 驱动程序连接到它。如果我将useUnifiedTopology标志设置为true,则不会发生任何事情(连接只是挂起),如果我将其设置为false,则会收到错误消息,告诉我连接在 30 秒后超时。
我从根本上做错了什么吗?是否可以使用 Docker 镜像将 MongoDB 作为副本集运行?有人可以给我一些指导吗?
当我如上所述运行数据库时,然后运行以下命令:
$ docker exec -it test-mongo bash
Run Code Online (Sandbox Code Playgroud)
然后在容器内运行:
$ mongo
Run Code Online (Sandbox Code Playgroud)
我连接到数据库。然后我运行以下命令:
var database = db.getSiblingDB('test-db');
database.auth('user', 'password');
database.getCollectionNames();
Run Code Online (Sandbox Code Playgroud)
前两个成功,没有任何问题,第三个告诉我,listCollections由于未捕获的异常和错误消息而失败not master and slaveOk=false。
这听起来好像单个数据库服务器不是它自己的主服务器,是吗?
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |