Tidak dapat terhubung ke mongodb errno: 61 Koneksi ditolak

91

Saya baru saja menginstal mongodb-2.6.0 dengan Homebrew . Setelah berhasil diinstal, saya mencoba menghubungkan menggunakan mongoperintah. Saya menerima kesalahan berikut yang tidak memungkinkan saya untuk terhubung:

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
Michael
sumber
1
Apakah Anda yakin layanan mongod bahkan berjalan? Opsi konfigurasi apa yang Anda miliki di file conf?
ffflabs
Apakah Anda menggunakan sudo apt-get untuk menginstal? Saya telah membaca tentang orang-orang yang mengalami masalah dengan ini ... coba hapus dan unduh melalui situs MongoDB sebagai gantinya.
Hassan
Saya menginstal dengan homebrew, petunjuk di situs resmi tidak menyatakan bahwa saya perlu menyiapkan file .config. Saya cukup mengunduhnya dan menjalankan perintah 'mongoose' yang menghasilkan kesalahan di atas.
Michael
Periksa log Anda, biasanya /var/logs/mongodbjika saya ingat dengan benar.
AlbertEngelB
Saya menginstal ulang melalui unduhan dan membuka zip file. Saya menjalankan 'mongo' dan masih menerima kesalahan yang sama.
Michael

Jawaban:

277

Itu bisa terjadi ketika layanan mongodb tidak berjalan di mac. Untuk memulainya, saya mencoba

brew services start mongodb

dan itu berhasil.

Edit: Menurut diskusi tentang PR ini di homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicessudah usang, saya melihat-lihat SO dan menemukan jawaban ini sekarang menjawab pertanyaan: Apa cara yang benar untuk memulai layanan mongod di linux / OS X?

Hrishi
sumber
8
Saya mendapatkan pesan kesalahan dengan perintah ini: "Perintah tidak dikenal: layanan"
ZeMoon
7
'layanan pembuatan
Vitaly
7
Saya mencoba sudo mongod bukannya mongo dan itu dimulai! Untuk mengakses mongo shell, saya membuka jendela shell baru dan menulis mongo dan berhasil !! Anda dapat menemukan jejak kesalahan lengkap dengan solusi di blog ini
Ali Raza Bhayani
1
Layanan pembuatan bir tidak lagi didukung di Mac OS X Yosemite saya. sudo mongodmulai mongodb dan kemudian perintah mongo bekerja. Terima kasih @Ali Raza Bhayani.
psun
2
Terima kasih untuk solusi ini !! Perintah layanan minuman bekerja untuk saya di Mac OS X Sierra saya.
Jcc. Sanabria
32

Saya mengalami masalah yang sama persis dan berikut adalah proses langkah demi langkah yang jelas untuk menghindari kesalahan ini.

Langkah 1 - Instalasi (Jangan ikuti langkah ini jika Anda telah menginstal MongoDB):

brew update
brew install mongodb

Langkah 2 - Jalankan Mongo Daemon:

mkdir -p /data/db
sudo mongod

Langkah 3 - Jalankan Mongo Shell Interface:

mongo

Dalam urutan ini, saya dapat menjalankan mongoperintah tanpa kesalahan apa pun. Saya juga telah merinci jejak kesalahan dan solusinya di blog ini .

Ali Raza Bhayani
sumber
1
Ini juga direferensikan di halaman resmi MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira
ini berhasil untuk saya sekali ... tetapi kemudian terjatuh: / Ini sepertinya berhasil: stackoverflow.com/a/22623543/1177832
danwild
Ini adalah cara yang baik untuk memenangkan pertempuran dan kalah dalam perang. Jangan menjalankan layanan sebagai root.
Miles Erickson
22

Untuk mengatasi masalah Anda, Anda harus mengikuti petunjuk yang kemudian diberikan kepada Anda oleh brew setelah Anda menggunakan "brew install mongodb".

Agar launchd memulai mongodb saat login:

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

Kemudian untuk memuat mongodb sekarang:

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

Atau, jika Anda tidak ingin / membutuhkan launchctl, Anda dapat menjalankan:

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

Anda mungkin bisa menjalankan perintah terakhir itu, tetapi itu tidak berhasil untuk saya dan saya perlu menjalankan perintah kedua. Untuk menyelamatkanku di masa depan. Saya baru saja menjalankan perintah pertama juga. Semoga membantu!

EDIT Metode penggunaan Hrishi brew services mongodb startbekerja dengan baik untuk saya. Saya pikir mereka harus memasukkan ini ke dalam dokumen mongo.

jh3y
sumber
Saya menggunakan perintah terakhir dan mengunjungi localhost / 27017 di browser saya, layar berkata, 'Sepertinya Anda mencoba mengakses MongoDB melalui HTTP pada port driver asli.' Itu sepertinya tidak benar ...
Michael
Mongo sekarang sudah lari kan? Seperti di Anda dapat mengetik mongo di shell dan Anda tidak lagi mendapatkan koneksi menolak pesan? Anda tidak akan mengakses mongo dari browser, Anda pasti ingin bekerja dengannya dari cli.
jh3y
Tidak, tidak ada perintah di shell yang akan dijalankan setelah saya memasukkan 'mongod --config /usr/local/etc/mongod.conf' Ini hanyalah prompt kosong. Saya berhenti kembali tanpa menggunakan homebrew dan mengunduh zip dari situs web, memindahkan file yang dapat dieksekusi ke / usr / local / bin, tetapi sekarang saya masih menerima pesan kesalahan yang sama.
Michael
ya, perintah terakhir juga tergantung untukku. Saya baru saja menjalankan dua yang pertama dan Anda akan menjadi baik. Saat hang, tekan ctrl + cdan coba mongosetelah itu.
jh3y
Hmm ... Masih belum berfungsi. Saya akan memposting di forum mongoDB. Terima kasih atas bantuannya.
Michael
16

Di tab lain, Anda dapat memulai cangkang mongo dengan

mongod

Kemudian kembali ke tab sebelumnya dan coba lagi. Jika Anda mengalami masalah saat menyiapkan mongoshell Anda, lihat tautan ini di mongo shell: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ atau tautan ini untuk memasang mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Eric Hou
sumber
Ini berhasil untuk saya. Saya benar-benar lupa memulai layanan mongod sebelum mencoba menjalankan mongo. Terima kasih!
Matt Welander
7

Saya mengalami masalah yang sama saat menelepon mongoddari baris perintah.

Saya menyelesaikan ini dengan menelepon sebagai gantinya sudo mongod.

Bogdan T.
sumber
Jangan menjalankan layanan sebagai root.
Miles Erickson
4

Saya mengalami kesalahan yang sama tetapi akar penyebabnya berbeda. Pikir saya akan memposting solusi di sini jika ada orang lain yang mengalami masalah. Saya mendapat kesalahan ini setelah Mac saya mati secara tidak benar saat saya sedang berjalan mongorestore -d foo dump/foo/.

tl; dr : Saya tetap masalah dengan menghapus rusak foo.nsberkas bersama dengan foo.0, foo.1, ... dari folder data saya /usr/local/var/mongodb/. Kemudian saya me-restart server mongo dengan brew services restart mongodbdan saya kembali normal.

Detail : Saya terus mendapatkan kesalahan bahkan setelah mencoba memulai atau memulai ulang layanan mongodb melalui brew atau launchctl. Akhirnya saya berlari mongod --dbpath /usr/local/var/mongodb dan melihat bahwa layanan tidak benar-benar dimulai, dan urutan mulai termasuk kesalahan berikut: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database Saya menyingkirkan .nsfile buruk dan sisa file data, dan saat berikutnya saya memulai layanan, saya siap melakukannya .

Nick Benes
sumber
1
Satu-satunya penyesalan saya adalah saya hanya memiliki satu suara positif untuk diberikan: semua jawaban lain mengabaikan fakta bahwa konfigurasi minuman default menempatkan dbs di / usr / local / var / mongodb!
premiumFrye
1
Annnddd Mongo baru saja jatuh lagi, jadi sekarang saya harus melalui proses ini lagi. Untung saya memberi suara positif pada jawaban Anda sehingga saya dapat menemukannya lagi: D
premiumFrye
3

bagi saya di osx, saya harus mematikan instance yang berjalan lama, kemudian memulai ulang berhasil.

$>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
ranjeetcao.dll
sumber
1

Saya mendapat kesalahan ini setelah saya meningkatkan ke mongo 3.6 dengan homebrew.

Log /usr/local/var/log/mongodb/mongo.logberisi pesan tersebut shutting down with code:62. Kode kesalahan ini berarti bahwa database yang ada terlalu tua untuk dijalankan dengan versi mongo saat ini.

Saya menemukan 2 solusi dalam pertanyaan SO lainnya :

Saya memilih untuk meningkatkan. Dalam kasus saya, itu berarti saya harus menurunkan versi ke 3.4, menjalankan perintah di konsol mongo, lalu meningkatkan lagi. Mongo mengharuskan Anda untuk mengupgrade satu versi utama dalam satu waktu, jadi bergantung pada seberapa jauh Anda sebelumnya, mungkin ada langkah tambahan. Dokumen akan memandu Anda.

The brew switch* dan brew services restartperintah membuat swapping antara versi relatif tanpa rasa sakit.

Chad von Nau
sumber
0

Jika Anda sudah menginstal MongoDB maka pertama-tama coba jalankan mongod sebagai pengguna sudo, saya menghadapi masalah karena tidak menjalankan mongod sebagai superuser.

Saya telah menempelkan o / p untuk kedua perintah ( mongod dan sudo mongod ) di paling bawah, Anda juga dapat memeriksanya, tetapi

Pertama coba ini

sudo mongod

bukan ini

mongod

Saya telah menginstal MongoDB di MAC OS X Sierra 10.12.6 saya dengan menjalankan perintah berikut secara berurutan.

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

kemudian buat direktori tempat proses mongod akan menulis data, ini opsional karena proses mongod mengambilnya secara default, lihat panduan berguna ini di https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Akhirnya mulailah proses mongod sebagai berikut

sudo mongod

Oputput perintah mongod (gagal) dan sudo mongod (berhasil) di terminal saya.

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

Kemudian saya membuka terminal baru untuk mulai menanyakan MongoDB , itu berhasil.

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
>

Itu dia.

hygull
sumber
0

Saya memiliki masalah yang sama dan saat mencari di file log saya melihat ini:

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

jadi saya membuat direktori yang /usr/local/var/mongodb mengeluarkan perintah layanan restart mongodb saya bisa membuka konsol mongo.

Jonathan.Wagner
sumber
-1

Dugaan saya adalah bahwa Anda tidak memiliki database yang sedang berjalan saat mencoba mengakses pengujian melalui perintah "mongo".

Pertama jalankan perintah ini di terminal:

mongod 

Kemudian buka jendela terminal lain dan jalankan:

mongo

Semuanya harus berfungsi sekarang.

Ctpelnar1988
sumber
-1

Kesalahan serupa saya diatasi dengan menghapus file "sudo rm /data/db/mongod.lock" ketika mencoba menjalankan mongod. Sekarang kamu dapat menjalankan mongod dan kemudian mongo.

Rishabh Mehta
sumber