Ubuntu

通過新貴設置 mongodb - 如何傳遞選項?

  • December 8, 2012

我使用以下說明在 VMware 內的 Ubuntu 伺服器 VM 中安裝了 MongoDB:http: //docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/。一切正常,我可以在正常埠 27017 訪問 MongoDB

./mongo 172.16.150.131:27017

現在,我想製作一個虛擬副本集和另一個數據庫實例來測試我的應用程序。我習慣於在本地電腦上的四個獨立終端中執行以下命令:

./mongod --port 27027 --dbpath ~/mongodb/solo
./mongod --port 27028 --dbpath ~/mongodb/rs0-0 --replSet rs0
./mongod --port 27029 --dbpath ~/mongodb/rs0-1 --replSet rs0
./mongod --port 27030 --dbpath ~/mongodb/rs0-2 --replSet rs0

如何在 VM 中執行此操作?我通過 SSH 連接到我的虛擬機,執行命令並關閉終端(在 OS X 中)後,它們應該仍在執行。

我試過:

service mongodb --port 27027 --dbpath ~/mongodb/solo
service mongodb ~/mongodb/solo/mongodb.conf

但兩者都得到以下錯誤(具有不同的上下文):

Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongodb --config=~/mongodb/solo/mongodb.conf

The script you are attempting to invoke has been converted to an Upstart
job, but --config=~/mongodb/solo/mongodb.conf is not supported for Upstart jobs.

我如何讓這個工作?第一次使用 Ubuntu 作為伺服器。謝謝。

上下文 - 目標是在 VM 中創建我的數據庫,以便在測試我的應用程序時產生某種延遲,但主要是這樣我就可以暫停 VM,而不是在我重新啟動筆記型電腦時將腳本複制並粘貼到不同的終端以設置 MongoDB。

當您使用 Ubuntu 軟體包安裝時,它會創建一個新貴作業,這就是您在 Ubuntu 系統上啟動/停止服務的內容。當然,它只啟動一個mongod,預設只有一個配置。可以在此處找到該新貴工作(預設情況下):

/etc/init/mongodb.conf

不要與/etc/mongodb.conf哪個是 MongoDB 服務的配置文件的預設位置相混淆。

如果您希望能夠自動啟動/停止額外的實例,或者希望新貴管理它們,那麼您只需要創建指向不同配置文件的重複作業(或在作業文件本身中指定不同的選項)。首先查看我上面提到的 init 中的文件,然後在此處查看有關滾動您自己的新貴工作的更多資訊:

http://upstart.ubuntu.com/cookbook/

當然,另一種選擇是mongod直接呼叫額外的實例。例如:

/usr/bin/mongod --fork --config=~/mongodb/solo/mongodb.conf

需要該--fork選項(如果未在配置文件中指定)分叉到後台,並且在您註銷並終止 shell 時不會被殺死。

引用自:https://serverfault.com/questions/455941