2012-01-18 243 views
12

如果我嘗試與mongo命令單獨運行MongoDB的殼,我得到:的MongoDB無法連接到本地主機,但可以連接到本地主機的IP地址

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 

例外:連接失敗

然而,如果我規定localhost的局域網IP地址是這樣的:

mongo 10.10.5.90 

......它連接好。

任何線索?

+0

你可以平127.0.0.1? – 2012-01-18 04:27:49

+1

是的,我可以平127和本地主機 – MFB 2012-01-18 04:33:06

回答

18

你在你的mongodb.conf(或啓動腳本)中設置了bind_ip嗎? 爲了清晰起見編輯 A bind_ip設置限制了它只會偵聽該IP的IP。

查看IP地址綁定部分:http://www.mongodb.org/display/DOCS/Security+and+Authentication

如果沒有,你有什麼防火牆規則阻止本地主機訪問?這可能有點奇怪,但我想不出爲什麼在局域網IP工作時無法工作的另一個原因。

+0

這是我的mongodb.conf:bind_ip = 10.10.5.90 端口= 27017 DBPATH = /數據/ DB 的logpath = /var/log/mongodb/mongodb.log logappend =真 VVVV = true journal = true rest = true – MFB 2012-01-18 04:31:43

+0

如果您希望能夠從本地主機連接,則取出bind_ip設置。請參閱我鏈接的文檔。 – 2012-01-18 04:35:51

+0

韋斯,謝謝。刪除bind_ip設置可解決問題。 – MFB 2012-01-18 04:50:03

10

如果mongodb未正確關閉,也會出現此錯誤。如果你輸入sudo start mongodb,並且它在每次執行時都給出一個新的進程ID,那麼你的mongodb沒有正確關閉。要解決此類型

 
sudo rm /var/lib/mongodb/mongod.lock 
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo start mongodb

8

只要按照這些步驟來解決這個問題

Step 1: Remove lock file. 
sudo rm /var/lib/mongodb/mongod.lock 

Step 2: Repair mongodb. 
mongod --repair 

Step 3: start mongodb. 
sudo start mongodb 
or 
sudo service mongodb start 

Step 4: Check status of mongodb. 
sudo status mongodb 
or 
sudo service mongodb status 

Step 5: Start mongo console. 
mongo 
+0

ubuntu中mongodb的服務名稱是mongod not mongodb – GeekAb 2016-09-07 08:12:57