在localhost上创建两个单独的MongoDB实例

时间:2013-10-08 19:45:09

标签: c# mongodb localhost

我试图找到一种方法来拥有两个独立的本地托管的mongoDB实例,因此一个数据库中的数据库不会影响另一个中的数据库。我尝试使用不同的端口,但这仍然会导致一个数据库中的更改影响另一个端口,但两者都需要在本地托管。我在mongodb.org上看到我应该更改配置文件,但我不确定它在哪里或者如何编辑它(是的我知道它将是某个版本的文本或xml文件。)如果你有一个例子你愿意发帖我会很感激。我正在使用robomongo在windows机器上工作,我使用c#4.0 restful service

访问数据库

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

2 个答案:

答案 0 :(得分:3)

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

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

如果您使用的是Linux计算机,则可以使用--fork启动多个mongod进程from a single command session。 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服务运行,请查看the documentation

答案 1 :(得分:0)

您甚至不需要更改配置文件(这仅适用于作为服务在默认端口上运行的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