Không thể kết nối với mongodb errno: 61 Kết nối bị từ chối


91

Gần đây tôi đã cài đặt mongodb-2.6.0 với Homebrew . Sau khi cài đặt thành công, tôi đã thử kết nối bằng mongolệnh. Tôi nhận được các lỗi sau không cho phép tôi kết nối:

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
Bạn có chắc chắn dịch vụ mongod đang chạy không? Bạn có tùy chọn cấu hình nào trên tệp conf của mình?
ffflabs

Bạn đã sử dụng sudo apt-get để cài đặt chưa? Tôi đã đọc về những người gặp sự cố với điều này ... hãy thử xóa và tải xuống qua trang web MongoDB .
Hassan

Tôi đã cài đặt bằng homebrew, hướng dẫn trên trang web chính thức không nêu tôi cần thiết lập tệp .config. Tôi chỉ cần tải xuống và chạy lệnh 'mongoose' dẫn đến các lỗi trên.
Michael

Kiểm tra nhật ký của bạn, nói chung là trong /var/logs/mongodbnếu tôi nhớ chính xác.
AlbertEngelB

Tôi đã cài đặt lại thông qua tải xuống và giải nén tệp. Tôi đang chạy 'mongo' và vẫn nhận được các lỗi tương tự.
Michael

Câu trả lời:


277

Nó có thể xảy ra khi dịch vụ mongodb không chạy trên mac. Để bắt đầu nó, tôi đã thử

brew services start mongodb

va no đa hoạt động.

Chỉnh sửa: Theo thảo luận về PR này trên homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew serviceskhông được dùng nữa, tôi đã xem xét trên SO và thấy những câu trả lời này hiện trả lời câu hỏi: Cách chính xác để bắt đầu một dịch vụ mongod trên linux / OS X là gì?


8
Tôi nhận được một lỗi với lệnh này: "lệnh Unknown: Dịch vụ"
ZeMoon

7
'dịch vụ nấu bia' không còn được hỗ trợ: github.com/Homebrew/homebrew/issues/32006
Vitaly

7
Tôi đã thử sudo mongod thay vì mongo và nó đã bắt đầu! Để truy cập mongo shell, tôi đã mở cửa sổ shell mới và viết mongo và nó đã hoạt động !! Bạn có thể tìm thấy dấu vết lỗi đầy đủ với dung dịch trên blog này
Ali Raza Bhayani

1
Dịch vụ nấu bia không còn được hỗ trợ trong Mac OS X Yosemite của tôi nữa. sudo mongodbắt đầu mongodb và sau đó lệnh mongo hoạt động. Cảm ơn @Ali Raza Bhayani.
psun

2
Cảm ơn vì giải pháp này !! Lệnh dịch vụ pha cà phê đã làm việc cho tôi trong Mac OS X Sierra của tôi.
Jcc.Sanabria

32

Tôi đã gặp phải vấn đề tương tự và đây là quy trình từng bước rõ ràng để tránh lỗi này.

Bước 1 - Cài đặt (Không làm theo bước này nếu bạn đã cài đặt MongoDB):

brew update
brew install mongodb

Bước 2 - Chạy Mongo Daemon:

mkdir -p /data/db
sudo mongod

Bước 3 - Chạy giao diện Mongo Shell:

mongo

Trong trình tự này, tôi đã có thể chạy mongolệnh mà không gặp bất kỳ lỗi nào. Tôi cũng đã trình bày chi tiết về dấu vết lỗi và giải pháp của nó trên blog này .


1
Điều này cũng được tham khảo trên trang chính thức của MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira

này làm việc cho tôi một lần ... nhưng sau đó nó đã giảm hơn: / Điều này dường như đã làm các trick: stackoverflow.com/a/22623543/1177832
danwild

Đây là một cách tốt để thắng trận và thua trong cuộc chiến. Không chạy các dịch vụ dưới dạng root.
Miles Erickson

22

Để giải quyết vấn đề của bạn, bạn cần làm theo các hướng dẫn sau đó được cung cấp cho bạn bởi brew sau khi bạn sử dụng "brew install mongodb".

Để có khởi động mongodb khởi động khi đăng nhập:

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

Sau đó để tải mongodb ngay bây giờ:

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

Hoặc, nếu bạn không muốn / cần khởi chạy, bạn chỉ có thể chạy:

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

Bạn có thể chỉ chạy lệnh cuối cùng đó, nhưng nó không hoạt động đối với tôi và tôi cần phải chạy lệnh thứ hai. Để cứu tôi trong tương lai. Tôi cũng vừa chạy lệnh đầu tiên. Hy vọng rằng sẽ giúp!

CHỈNH SỬA phương pháp sử dụng của Hrishi brew services mongodb starthiệu quả với tôi. Tôi nghĩ họ nên đưa điều này vào tài liệu mongo.


Tôi đã sử dụng lệnh cuối cùng và truy cập localhost / 27017 trong trình duyệt của mình, màn hình hiển thị, 'Có vẻ như bạn đang cố truy cập MongoDB qua HTTP trên cổng trình điều khiển gốc.' Điều đó có vẻ không đúng ...
Michael

Mongo hiện đang chạy đúng không? Như trong bạn có thể gõ mongo trong shell và bạn không còn nhận được thông báo từ chối kết nối? Bạn sẽ không truy cập mongo từ trình duyệt, bạn sẽ muốn làm việc với nó từ cli.
jh3y

Không, không có lệnh nào trong trình bao sẽ thực thi sau khi tôi nhập 'mongod --config /usr/local/etc/mongod.conf' Nó đơn giản là một dấu nhắc trống. Tôi lại bị đình trệ khi không sử dụng homebrew và tải xuống zip từ trang web, di chuyển tệp thực thi sang / usr / local / bin, nhưng bây giờ tôi vẫn nhận được thông báo lỗi tương tự.
Michael

yeah lệnh cuối cùng cũng vừa treo cho tôi. Tôi chỉ chạy hai đầu tiên và bạn sẽ tốt. Khi nó bị treo, chỉ cần nhấn ctrl + cvà thử mongosau đó.
jh3y

Hmm ... Nó vẫn không hoạt động. Tôi sẽ đăng trên các diễn đàn mongoDB. Thx cho sự giúp đỡ.
Michael

16

Trong một tab khác, bạn có thể bắt đầu trình bao mongo bằng

mongod

Sau đó, quay lại tab trước và thử lại. Nếu bạn gặp sự cố khi thiết lập mongoshell, hãy xem liên kết này trên mongo shell: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ hoặc liên kết này khi cài đặt mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/


Điều này đã làm điều đó cho tôi. Tôi hoàn toàn bỏ qua việc khởi động mongod dịch vụ trước khi cố gắng chạy mongo. Cảm ơn!
Matt Welander

7

Tôi đã gặp sự cố tương tự khi gọi mongodtừ dòng lệnh.

Thay vào đó, tôi đã giải quyết vấn đề này bằng cách gọi điện sudo mongod.


Không chạy các dịch vụ dưới dạng root.
Miles Erickson

4

Tôi đã có cùng một lỗi nhưng một nguyên nhân gốc rễ khác. Tôi nghĩ tôi sẽ đăng giải pháp ở đây trong trường hợp bất kỳ ai khác gặp sự cố. Tôi gặp lỗi này sau khi máy Mac của tôi tắt không đúng cách trong khi tôi đang chạy mongorestore -d foo dump/foo/.

tl; dr : Tôi cố định vấn đề bằng cách loại bỏ các hư hỏng foo.nstập tin cùng với foo.0, foo.1... từ thư mục dữ liệu của tôi /usr/local/var/mongodb/. Sau đó, tôi khởi động lại máy chủ mongo brew services restart mongodbvà tôi đã trở lại bình thường.

Chi tiết : Tôi vẫn gặp lỗi ngay cả sau khi cố gắng khởi động hoặc khởi động lại dịch vụ mongodb thông qua brew hoặc khởi chạyctl. Cuối cùng, tôi đã chạy mongod --dbpath /usr/local/var/mongodb và thấy rằng dịch vụ không thực sự bắt đầu và trình tự bắt đầu bao gồm lỗi sau: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database Tôi đã loại bỏ .nstệp xấu và phần còn lại của tệp dữ liệu và lần sau khi khởi động dịch vụ, tôi đã sẵn sàng. .


1
Điều hối tiếc duy nhất của tôi là tôi chỉ có một ủng hộ để đưa ra: tất cả các câu trả lời khác đều bỏ qua thực tế rằng cấu hình bia mặc định đặt dbs trong / usr / local / var / mongodb!
premiumFrye

1
Annnddd Mongo vừa bị lỗi một lần nữa, vì vậy bây giờ tôi phải thực hiện lại quá trình này. Điều tốt Tôi upvoted câu trả lời của bạn để tôi có thể tìm thấy nó một lần nữa: D
premiumFrye

3

đối với tôi trên osx, tôi phải giết phiên bản đang chạy cũ, sau đó khởi động lại hoạt động.

$>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


1

Tôi gặp lỗi này sau khi nâng cấp lên mongo 3.6 bằng homebrew.

Nhật ký /usr/local/var/log/mongodb/mongo.logchứa thông điệp shutting down with code:62. Mã lỗi này có nghĩa là cơ sở dữ liệu hiện có quá cũ để chạy với phiên bản mongo hiện tại.

Tôi đã tìm thấy 2 giải pháp trong một câu hỏi SO khác :

  • Xóa thư mục cơ sở dữ liệu của bạn ( /usr/local/var/mongodb)
  • Hoặc làm theo quy trình nâng cấp

Tôi đã chọn nâng cấp. Trong trường hợp của tôi, điều đó có nghĩa là tôi phải hạ cấp xuống 3.4, chạy một lệnh trong bảng điều khiển mongo, sau đó nâng cấp lại. Mongo yêu cầu bạn nâng cấp một phiên bản chính tại một thời điểm, vì vậy tùy thuộc vào khoảng cách của bạn, có thể có các bước bổ sung. Tài liệu sẽ hướng dẫn bạn.

Các lệnh brew switch*brew services restartthực hiện việc hoán đổi giữa các phiên bản tương đối dễ dàng.


0

Nếu bạn đã cài đặt MongoDB thì trước tiên hãy thử chạy mongod với tư cách là người dùng sudo, tôi đã gặp phải sự cố do không chạy mongod với tư cách là người dùng siêu cấp.

Tôi đã dán o / p cho cả hai lệnh ( mongodsudo mongod ) ở dưới cùng, bạn cũng có thể kiểm tra điều đó nhưng

Lần đầu tiên thử cái này

sudo mongod

không phải cái này

mongod

Tôi đã cài đặt MongoDB trên MAC OS X Sierra 10.12.6 của mình bằng cách chạy lệnh sau theo trình tự.

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

sau đó tạo một thư mục mà quy trình mongod sẽ ghi dữ liệu vào đó, đây là tùy chọn vì quy trình mongod lấy nó theo mặc định, hãy xem hướng dẫn hữu ích này tại https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Cuối cùng bắt đầu quy trình mongod như sau

sudo mongod

Oputput của các lệnh mongod (không thành công) và sudo mongod (thành công) trên thiết bị đầu cuối của tôi.

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

Sau đó, tôi mở thiết bị đầu cuối mới để bắt đầu truy vấn MongoDB , nó đã hoạt động.

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
>

Đó là nó.


0

Tôi gặp vấn đề tương tự và khi xem tệp nhật ký, tôi thấy điều này:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

vì vậy tôi đã tạo thư mục /usr/local/var/mongodb ban hành lệnh mongodb khởi động lại dịch vụ bia, tôi đã có thể mở bảng điều khiển mongo.


-1

Tôi đoán là bạn không có cơ sở dữ liệu đang chạy trong khi cố gắng truy cập thử nghiệm thông qua lệnh "mongo".

Đầu tiên hãy chạy lệnh này trong terminal:

mongod 

Sau đó, mở một cửa sổ đầu cuối khác và chạy:

mongo

Mọi thứ sẽ hoạt động ngay bây giờ.


-1

Lỗi tương tự của tôi được giải quyết bằng cách xóa tệp "sudo rm /data/db/mongod.lock" trong khi cố gắng chạy mongod. Bây giờ bạn có thể chạy mongod và sau đó là mongo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.