2017-02-21 196 views
0

我在Ubuntu 16.04 VPS上安裝了MongoDB,並允許通過防火牆進行連接。當我使用命令(mongod)運行服務器時,它開始時沒有問題,然後我可以連接到它(使用RoboMongo作爲測試應用程序)。MongoDB Server Ubuntu 16.04

但是,當我在啓動時自動運行服務(使用systemctl)時,我無法連接到它。我確認它正在運行,並且由於地址已被使用,所以無法自己運行。

有沒有人有任何這方面的經驗,或有關如何解決問題的任何提示?服務器只會運行本地主機,我將使用SSH隧道進行測試,因此不需要進行身份驗證。

有人嗎?

+0

如果您將使用隧道,那麼爲什麼您允許通過防火牆進行連接?這沒有意義 – Martin

+0

我沒有正確解釋,我的道歉。我首先在沒有SSH隧道的情況下對它進行了測試,並發現了這個問題。 SSH隧道到位後問題仍然存在。我現在從防火牆中刪除了異常。 – Jasper

回答

0

當你啓動mongod的時候,你提供了一個配置文件(使用--config或-f參數)?如果不是,那麼它默認偵聽所有接口。

使用systemctl啓動守護程序時使用的默認配置文件默認只在本地主機上偵聽,以防止其在網絡上可用。如果您打算使用隧道連接到服務器,這很好。

+0

不,我沒有提供配置文件,但我不認爲這是必要的,因爲如果我自己啓動它,它是完美的。根據你的回答判斷,我是對的。你有什麼想法還有什麼可能是錯的? – Jasper

+0

mongod在沒有任何選項的情況下運行時使用默認配置。使用systemctl啓動Mongo通常會導致它在某處讀取配置文件(嘗試/etc/mongod.conf)。 你如何創建隧道? – Martin

+0

Robomongo爲您創建SSH隧道。我使用用戶名/密碼進行身份驗證。但是,我沒有得到,是它應該使用相同的配置時,我自己運行它沒有任何指定的配置文件,不應該嗎? – Jasper