在本地主机上创建两个单独的MongoDB实例

本文关键字:两个 单独 实例 MongoDB 主机 创建 | 更新日期: 2023-09-27 18:34:39

我正在尝试找到一种方法来拥有两个单独的本地托管的mongoDB实例,以便其中一个中的数据库不会影响另一个中的数据库。我尝试使用不同的端口,但这仍然会导致一个数据库的变化影响另一个数据库,但两者都需要在本地托管。我在 mongodb.org 上看到我应该更改配置文件,但我不确定它在哪里或如何准确编辑它(是的,我知道它将是文本或 xml 文件的某个版本。如果您有愿意发布的示例,我将不胜感激。我正在使用robomongo在Windows机器上工作,并使用c# 4.0 restful服务访问数据库

编辑:我还希望能够同时打开两个连接。

在本地主机上创建两个单独的MongoDB实例

您只需要确保每个实例都有自己的数据目录、端口和日志文件。

  • 使用 --dbpath 设置数据目录
  • 使用 --port 设置端口
  • 使用--logpath设置日志位置

在启动该过程之前,请确保您指定的所有目录都已存在。例如,Mongod 将抛出错误并退出,如果找不到您在 --dbpath 中指定的文件夹。

如果您使用的是 linux 机器,则可以使用 --fork 从单个命令会话启动多个 mongod 进程。Windows 使用 start 命令执行此操作。假设mongod.exe在你的道路上:

start mongod.exe --logpath C:'logs'log1.log --dbpath C:'data'db1 --port 27017
start mongod.exe --logpath C:'logs'log2.log --dbpath C:'data'db2 --port 27018
start mongod.exe --logpath C:'logs'log3.log --dbpath C:'data'db3 --port 27019

其中每个命令都将生成一个新的命令窗口,该窗口使用指定的参数运行mongod进程。如果要将MongoDB作为Windows服务运行,请查看文档。

您甚至不需要更改配置文件(这仅适用于在默认端口上作为服务运行的mongod。你可以简单地从命令行使用配置参数启动额外的mongod实例(我不使用windows,但它应该与linux非常相似(

>  mongod --logpath "log/foo.log" --dbpath data/foo --port 27020 --fork
>  mongod --logpath "log/bar.log" --dbpath data/bar --port 27021 --fork