2014-05-01 119 views
76

我最近安裝了mongodb-2.6.0和Homebrew。 成功安裝後,我嘗試使用mongo命令進行連接。我收到以下錯誤不容許我連接:無法連接到mongodb errno:61連接被拒絕

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused 

Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146 

exception: connect failed 
+1

你確定mongod服務甚至在運行嗎?你的配置文件有哪些配置選項? – amenadiel

+0

你使用sudo apt-get來安裝嗎?我讀過關於遇到問題的人...嘗試通過[MongoDB](https://www.mongodb.org/downloads)網站刪除並下載。 – Hassan

+0

我安裝了自制軟件,官方網站上的說明沒有說明我需要設置.config文件。我只是下載它,並運行導致上述錯誤的'mongoose'命令。 – Michael

回答

250

當mongodb服務未在mac上運行時會發生這種情況。要開始它,我試過

brew services start mongodb 

它工作。

編輯:根據這個PR上自制的討論:https://github.com/Homebrew/homebrew/issues/30628

brew services已過時,我看了看周圍的SO,發現這些答案,現在回答這個問題:What is the correct way to start a mongod service on linux/OS X?

+8

我得到這個命令的錯誤:「未知的命令:服務」 – ZeMoon

+0

也可能這是因爲在配置文件中,IP綁定到127.0.0.1,並且您與localhost連接。 –

+7

'brew services'不再支持:https://github.com/Homebrew/homebrew/issues/32006 – Vitaly

20

解決您的問題,您需要按照這些後,你用「釀造安裝MongoDB的」通過BREW然後給你的指令。

要具有的launchd啓動的MongoDB在登錄:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents 

然後立即加載的MongoDB:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 

或者,如果你不希望/需要launchctl做,你可以運行:

mongod --config /usr/local/etc/mongod.conf 

你也許能夠運行最後一個命令,但它不適用於我,我需要運行第二個命令和。在未來拯救我。我只是跑了第一個命令。希望有所幫助!

編輯 Hrishi的使用方法brew services mongodb start對我很好。我認爲他們應該把這個包含在mongo文檔中。

+0

我使用了最後一條命令,並在我的瀏覽器中訪問了localhost/27017,屏幕顯示'看起來您正試圖通過本地驅動程序端口上的HTTP訪問MongoDB。'這似乎並不正確...... – Michael

+0

Mongo現在運行正常嗎?就像你可以在shell中輸入** mongo **一樣,你不再收到拒絕連接的消息?您將不會從瀏覽器訪問mongo,您需要從cli中使用它。 – jh3y

+0

不,在我輸入'mongod --config /usr/local/etc/mongod.conf'後shell中沒有任何命令會執行。這很簡單,只是一個空白提示。我沒有使用自制軟件重新停止,並從網站下載zip文件,將可執行文件移動到/ usr/local/bin,但現在我仍然收到相同的錯誤消息。 – Michael

4

我有同樣的錯誤,但不同的根本原因。以爲我會在這裏發佈解決方案,以防其他人遇到問題。在我運行mongorestore -d foo dump/foo/時,我的Mac未正確關閉後出現此錯誤。

TL;博士:我通過沿移除受損foo.ns文件解決了問題foo.0foo.1,...從我的數據文件夾/usr/local/var/mongodb/。然後我用brew services restart mongodb重新啓動了mongo服務器,我恢復了正常。

詳情:即使在嘗試通過brew或launchctl啓動或重新啓動mongodb服務後,我仍然收到錯誤。最終,我跑 mongod --dbpath /usr/local/var/mongodb ,看見該服務實際上並沒有啓動,並且啓動序列包含以下錯誤: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database 我擺脫壞.ns文件和數據文件的其餘部分,接下來的時間,我開始我很好的服務去。

+1

我唯一的遺憾是我只有一個upvote給予:所有其他的答案忽略了這個事實,默認的brew配置把dbs放在/ usr/local/var/mongodb中! – premiumFrye

+1

Annnddd Mongo再次墜毀,所以現在我不得不再次經歷這個過程。好東西我upvoted你的答案,所以我可以再次找到它:D – premiumFrye

8

從命令行調用mongod時遇到同樣的問題。

我解決了這個問題,而不是致電sudo mongod

26

我遇到了完全相同的問題,這裏是一個清晰的一步一步的過程,以避免此錯誤。

步驟1 - 安裝(不按照此步驟,如果你已經安裝的MongoDB):

brew update 
brew install mongodb 

步驟2 - 蒙戈運行守護程序:

mkdir -p /data/db 
sudo mongod 

步驟3 - 運行Mongo Shell接口:

mongo 

在這個序列中,我能夠運行mongo命令,沒有任何錯誤。我還詳細介紹了錯誤跟蹤及其解決方案on this blog

+1

這也是在MongoDB的官方網頁上引用:http://docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/ #run-mongodb –

+0

這個工作對我來說有一次......但是然後它倒下了:/這似乎已經做了訣竅:http://stackoverflow.com/a/22623543/1177832 – danwild

0

My guess is that you do not have a running database while trying to access testing through the "mongo" command.

First run this command in terminal:

mongod 

Then open another terminal window and run:

蒙戈

Everything should be working now.

3

我在OSX上,我不得不殺了舊的運行實例,然後重新起動工作。

$>ps -aef | grep mongo 
502 8047  1 0 11:52AM ??   0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047 

$>sudo mongod 
0

我類似的錯誤,刪除「須藤RM /data/db/mongod.lock」文件試圖運行mongod的解決。 現在你可以運行mongod然後運行mongo。

0

如果您已經安裝了MongoDB,那麼首先嚐試以sudo用戶身份運行mongod,但由於未以超級用戶身份運行mongod,因此我遇到了問題。

我在最底層粘貼的O/P兩個命令(的mongod須藤的mongod),您可以檢查太多,但

首先嚐試這種

sudo mongod 

不是這個

mongod 

我通過依次運行以下命令,在我的MAC OS X Sierra 10.12.6上安裝了MongoDB。

brew update 
brew install mongodb --devel 
brew services start mongodb 

然後創建一個目錄到mongod的過程中會寫入數據,這是可選的,因爲mongod的進程默認情況下需要它,請參閱https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

sudo mkdir -p /data/db 

本有用的指南終於開始mongod的過程如下

sudo mongod 

Oputput mongod(失敗)和sudo mongod(成功)命令在我的終端上。

MacBook-Pro-2:appscheck admin$ mongod 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] db version v3.4.10 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] allocator: system 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] modules: none 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] build environment: 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten]  distarch: x86_64 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten]  target_arch: x86_64 
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] options: {} 
2017-12-10T08:12:06.166+0530 I STORAGE [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating 
2017-12-10T08:12:06.166+0530 I NETWORK [initandlisten] shutdown: going to close listening sockets... 
2017-12-10T08:12:06.166+0530 I NETWORK [initandlisten] shutdown: going to flush diaglog... 
2017-12-10T08:12:06.167+0530 I CONTROL [initandlisten] now exiting 
2017-12-10T08:12:06.167+0530 I CONTROL [initandlisten] shutting down with code:100 


MacBook-Pro-2:appscheck admin$ sudo mongod 
Password: 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] db version v3.4.10 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] allocator: system 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] modules: none 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] build environment: 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten]  distarch: x86_64 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten]  target_arch: x86_64 
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] options: {} 
2017-12-10T08:12:14.084+0530 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] **   Read and write access to data and configuration is unrestricted. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 
2017-12-10T08:12:14.560+0530 I FTDC  [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data' 
2017-12-10T08:12:14.707+0530 I INDEX [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" } 
2017-12-10T08:12:14.707+0530 I INDEX [initandlisten]  building index using bulk method; build may temporarily use up to 500 megabytes of RAM 
2017-12-10T08:12:14.719+0530 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs 
2017-12-10T08:12:14.720+0530 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4 
2017-12-10T08:12:14.720+0530 I NETWORK [thread1] waiting for connections on port 27017 

然後我打開新的終端開始查詢MongoDB的,它的工作。

MacBook-Pro-2:appscheck admin$ mongo 
MongoDB shell version v3.4.10 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.4.10 
Welcome to the MongoDB shell. 
For interactive help, type "help". 
For more comprehensive documentation, see 
    http://docs.mongodb.org/ 
Questions? Try the support group 
    http://groups.google.com/group/mongodb-user 
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] **   Read and write access to data and configuration is unrestricted. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 
> show dbs; 
admin 0.000GB 
local 0.000GB 
> use practice 
switched to db practice 
> 

就是這樣。

0

我用自制軟件升級到mongo 3.6後出現這個錯誤。

日誌/usr/local/var/log/mongodb/mongo.log包含消息shutting down with code:62。這個錯誤代碼意味着現有的數據庫太舊,無法與當前版本的mongo一起運行。

我發現2個解決方案的另一個SO question

  • 刪除你的數據庫文件夾(/usr/local/var/mongodb
  • 或者按照upgrade procedure

我選擇升級。就我而言,這意味着我必須降級到3.4,在mongo控制檯中運行命令,然後再次升級。 Mongo要求你一次升級一個主要版本,所以根據你的背後有多遠,可能會有額外的步驟。文檔將引導您。

brew switch *brew services restart命令在各版本之間交換相對無痛。

相關問題