2013-10-08 38 views
0

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

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

回答

3

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

请确保您启动过程之前你已经指定的目录存在。例如,如果Mongod没有找到您在--dbpath中指定的文件夹,它会抛出一个错误并退出。

如果您在Linux机器上,则可以使用​​启动多个mongod进程from a single command session。 Windows使用start命令执行此操作。假设mongod.exe是在Path:

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

+0

请详细说明将mongodb作为Windows服务运行的意义 –

+0

这是一种管理长时间运行的程序的方法。每个[MSDN](http://msdn.microsoft.com/zh-cn/library/d56de412.aspx):Microsoft Windows服务使您能够创建在自己的Windows中运行的长时间运行的可执行应用程序会话。这些服务可以在计算机启动时自动启动,可以暂停和重新启动,并且不显示任何用户界面。这些功能使得服务非常适合在服务器上使用,或者当您需要长时间运行的功能时,这些功能不会干扰在同一台计算机上工作的其他用户。 – SuperAce99

0

你甚至不需要改变配置文件(这仅仅是作为一个服务在默认端口上运行的mongod,你可以简单地用命令行中的config参数启动额外的mongod实例(我不' T选用的窗口,但它应该是非常相似的Linux)

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

--fork不适合我。那个扩展是做什么的?这个命令(至少没有--fork)不允许我打开两个连接。对不起,只是补充说 –

+1

'--fork'是一个特定于linux的命令,它将父进程从进程中分离出来,它不会帮助Windows。 – SuperAce99

相关问题