mongo - tidak dapat terhubung ke server 127.0.0.1:7017

164

Saya berasal dari riak dan redis di mana saya tidak pernah memiliki masalah dengan layanan ini mulai, atau untuk berinteraksi.

Ini adalah masalah yang meluas dengan mongo dan saya agak tidak mengerti. Restart tidak membantu. Saya baru mengenal mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

Ini yang saya lihat di log.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
Tampa
sumber
2
Karena IMO ini tidak ada hubungannya dengan pemrograman per se, saya sarankan Anda untuk mengajukan pertanyaan ini di serverfault.com .
cimnine
2
Saya juga menghadapi masalah yang sama. Its cus mongo Tidak dapat membuat folder di C: / data / db Saya mengikuti tut ini mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL
Saya telah menghadapi kesalahan yang sama ketika menggunakan laptop perusahaan saya dan menginstal MongoDB di C :. Karena hak administratif dan fakta saya diminta dengan nama pengguna dan kata sandi admin saya setiap kali saya menginstal sesuatu atau memodifikasi apa pun di C :, itulah alasan saya tidak bisa membuat mongodb berfungsi. Setelah menginstalnya di D :, semua bekerja dengan baik.
paranza

Jawaban:

47

Kesalahan ini adalah apa yang akan Anda lihat jika shell mongo tidak dapat berbicara dengan server mongod.

Ini bisa jadi karena alamatnya salah (host atau IP) atau tidak berjalan. Satu hal yang perlu diperhatikan adalah jejak log yang disediakan tidak mencakup "Jumat 9 Nov 16:44:06" dari Anda mongo timestamp.

Bisakah kamu:

  1. Berikan argumen baris perintah (jika ada) yang digunakan untuk memulai proses mongod Anda
  2. Menyediakan aktivitas file log dari startup mongod serta log selama upaya startup mongo shell?
  3. Konfirmasikan bahwa proses mongod Anda dimulai pada mesin yang sama dengan shell mongo?
Jenna
sumber
283

Biasanya ini disebabkan karena Anda tidak memulai proses mongod sebelum Anda mencoba memulai shell mongo.

Mulai server mongod

mongod

Buka jendela terminal lain

Mulai kulit mongo

mongo
Ravi Hamsa
sumber
3
Kasing ini bekerja untuk saya, saya harus melakukan ~> sudo mongod --dbpath / dbpathlocation dan kemudian membuka terminal baru untuk menjalankan mongo ...
Saji
5
apa yang berhasil bagi saya di macOS Sierra adalah sudo mongoddan kemudianmongo
Amin Jafari
Saya harus membuat direktori / data / db sebelum menjalankan mongod
College Student
Saya tidak percaya bahwa yang harus saya lakukan adalah menjalankan mongoddi latar belakang atau shell lain sebelum menjalankan mongo. Berteriaklah kepada Ravi Hamsa !
Kareem Jeiroudi
Bekerja untuk saya seperti pesona!
Sobhit Sharma
86

Terselesaikan.

Masalah ini dapat diselesaikan dengan 4 langkah yang disebutkan di bawah ini

1) Hapus file .lock

sudo rm /var/lib/mongodb/mongod.lock 

2) memperbaiki mongodb

mongod -–repair

3) mulai server mongod

sudo service mongod start 

4) mulai klien mongo

mongo

Untuk detail lebih lanjut, lihat http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

shakthydoss
sumber
4
Hanya ingin tahu, apa itu /var/lib/mongodb/mongod.lock dan apa yang salah dengan itu?
ozn
Item 2 di Ubuntu 18.04 adalahmongod --repair
Aline Matos
43

Metode ini hanya berfungsi jika Anda ingin memperbaiki file data Anda tanpa menyimpan file aslinya

Untuk menemukan di mana Anda dbpath berada - vim /etc/mongodb.conf

periksa opsi dbpath =

(Saya punya dbpath = / var / lib / mongodb)

Default: / data / db /

Lokasi khas meliputi: / srv / mongodb, / var / lib / mongodb atau / opt / mongodb.

Ganti / var / lib / mongodb dengan dbpath Anda

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Pastikan bahwa Anda meninggalkan terminal Anda berjalan di mana Anda telah menjalankan baris di atas, jangan tekan 'Ctrl + c' atau keluar.) Ketik perintah untuk memulai mongo sekarang di jendela lain.

Semoga ini berhasil untuk Anda! bagi mereka yang ingin memperbaiki file data Anda sambil menjaga file asli mongo pulih

poorva
sumber
1
bekerja di ubuntu. --jurnal memperbaiki masalah saya. Apa yang sebenarnya terjadi? untuk apa - jurnal?
grep
Bekerja untuk saya di fedora 20. Bisakah sekarang kita menutup jendela terminal pertama?
Khayam Gondal
27

MAC OS

Periksa status

brew services list

Sesuatu seperti:

Name    Status  User Plist
mongodb stopped  

mulai itu

brew services start mongodb

Coba lagi

mongo atau mongo --port 27017

William Hu
sumber
1
Ini membantu saya memberi +1.
Sandeep
Tidak bekerja untuk saya. Saya telah berjuang berurusan dengan MongoDB ini selama satu jam sekarang. Wow!!!
Glenn
ini membantu saya, terima kasih ..
Iam ByeBlogs
15

Dalam kasus saya:

Pertama saya buka file config

sudo vi /etc/mongodb.conf

Komentar IP dan Port seperti ini

#bind_ip = 127.0.0.1
#port = 27017

Kemudian restart mongodb

sudo service mongodb restart
sudo service mongod restart

Akhirnya, berhasil: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
Finn
sumber
Menghapus ip / port tidak berhasil untuk saya. Ini benar-benar merusak server lebih banyak lagi. Layanan menolak untuk memulai kembali ...
Cerin
1
Hati-hati dengan bind_ip. Jika Anda berkomentar, itu akan memungkinkan koneksi jarak jauh ke database Anda yang jelas merupakan ide yang buruk kecuali Anda memiliki pengaturan keamanan dan auth. Saya percaya MongoDB tidak memiliki pengguna atau kata sandi secara default, jadi Anda harus mengetahui hal itu.
agm1984
Bekerja untuk saya juga, tetapi tidak tahu tentang keamanan setelah komentar @ agm1984, saya hanya akan menggunakan ini dalam mode pengembangan dan setelah saya akan menggunakan Atlas Cloud of Mongodb, lebih aman dalam kasus saya, saya pikir (dengan server saya yang buruk skill: D)
Adrien V
1
@AdrienV yakin, berisiko jika Anda menghapus pengikatan IP lokal karena akan memungkinkan untuk mengakses dari internet. Ini hanya pekerjaan untuk server pengembangan.
Finn
bind_ip diatur ke ip tambahan yang tidak dikenal. Menghapusnya memecahkan kesalahan / db / data ... ufff
zevero
14

Pastikan bahwa mongo Anda sedang berjalan. Saya memperbaiki masalah ini dengan mencoba memperbaiki mongodb, di sana saya menemukan bahwa direktori yang diperlukan untuk menjalankan db tidak dibuat. Ini menunjukkan kesalahan ini

Ketik:, mongoditu akan menunjukkan kesalahan

exception in initAndListen: 29 Data directory /data/db not found., terminating

Kesalahan terjadi karena dbpath /data/db/(konfigurasi default) tidak ada. Anda perlu membuat folder data dan menetapkan izin untuk itu.

Lalu saya membuat folder di sistem saya dengan perintah

sudo mkdir -p / data / db / dan sudo chown id -u/ data / db

kemudian saya jalankan mongo lagi dan itu berhasil.

Bipul Chandra Dev Nath
sumber
14

Sedikit terlambat dengan jawabannya tapi saya pernah mengalami masalah yang sama

Berikut ini adalah langkah-langkah yang membantu saya.

  1. Pergi ke C: \
  2. Buat folder "data"
  3. Dalam "data" buat folder "db"
  4. terminal terbuka (CMD) -> buka EX: " c:\MongoDB\Server\3.4\bin"
  5. ketik mongod => ini akan memulai server mongo (biarkan terbuka)

Jalankan menggunakan GUI, EX "robomongo"

Atau

buka terminal baru (CMD) -> pergi ke EX: c:\MongoDB\Server\3.4\bin"ketik" perintah "mongo"

Metin Atalay
sumber
12

Saya adalah pengguna windows dan saya menginstal MongoDB pada bulan November 2018 dan saya tidak ingin mengatur direktori data / db. Tetapi setelah beberapa hari, ketika saya buka, mendapat pesan kesalahan:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Kemudian saya mencoba memperbaiki menggunakan semua jawaban di atas dan tidak berhasil. Ketika saya mencoba menjalankan mongod, katanya

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

Saya mencoba mengubah jalur db (ke file program) melalui sistem file dan juga menggunakan cmd tetapi itu tidak berhasil.

Solusi yang berhasil bagi saya adalah:

Membuka Task Manager ( ctrl + shift + esc) -> tab Services dan ada baris MongoDB dengan status berhenti . Kemudian saya klik kanan dan klik start dan semuanya bekerja dengan baik :) .

Blasanka
sumber
6

Jika semua solusi di atas tidak berfungsi: buka service ( start>search>services) dan mulai layanan mongodb. Kemudian, dalam prompt cmd, setelah pergi ke tempat sampah, ketik:/>mongo

Khalid
sumber
5

Untuk terhubung dengan mongo, kita harus terlebih dahulu memulai layanan 'mongod'. berikut output yang bisa Anda lihat:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(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-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

Setelah itu buka terminal lain dan ketikkan 'mongo'.

Berikut ini adalah output yang dapat Anda lihat:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Masalah Anda terpecahkan :)

Prabhu Nandan Kumar
sumber
4

Saya juga memiliki masalah yang sama maka saya diperbaiki oleh dua baris kode ini. Semoga bermanfaat

systemctl start mongod
systemctl enable mongod
Bahodir Boydedayev
sumber
Atasi masalah saya!
S.M_Emamian
3

Saya menghadapi masalah yang sama setelah mencari banyak hal yang saya selesaikan dengan mengikuti:

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start
Rohit Gaidhane
sumber
ini berhasil! tetapi bersifat sementara, ketika saya me-restart sistem saya itu tidak berjalan lagi
Predator X
2

Anda dapat mencoba dengan perintah berikut:

sudo service mongod start

shivam kumar chaturvedi
sumber
2

Ini terjadi pada saya hari ini dan saya menyelesaikannya dengan cara berikut.

Mesin: Saya menggunakan mesin Windows 10 dan mengunduh MongoDB - Komunitas edisi terbaru.

Jadi, masalahnya adalah, saya belum C:\data\dbmembuat.

Tanpa membuat C:\data\db, saya membuka terminal CMD dan memulai database menggunakan mongodperintah di terminal

C: \ YourInstallationPath \ bin> mongod

Dan ketika saya memecat mongokomando maka saya mendapatkan masalahnya.

Twist, saya membuat folder yang diperlukan tetapi masih mendapatkan masalah. Dan ini karena server mongo sudah berjalan. Untuk memperbaikinya, saya menjalankan mongodperintah lagi, dan secara otomatis direferensikan ke C:\data\db.

Pengguna lain menyarankan untuk menambahkan C:\data\dbtetapi tidak berbicara tentang mengeksekusi mongodlagi, yang justru memecahkan masalah saya.

Amnesh Goel
sumber
2

Saya memiliki masalah yang sama untuk menghubungkan mongodb setelah menginstal menggunakan minuman di macOS.

Masalahnya juga mongod.locktetapi sebelum saya menginstal mongodb 3.6 dan direktori database /usr/local/var/mongodbdan memiliki file lama danmongod.lock

Sederhana saya memindahkan file database lama saya ke folder yang berbeda dan menghapus semuanya dari /usr/local/var/mongodb

Kemudian dimulai kembali:

brew services restart mongodb

Dan itu berfungsi dengan baik sekarang.

Mandeep Gill
sumber
2

dalam kasus saya di windows dan ubuntu, saya perlu membuat /data/dbfolder di root. Di ubuntu, saya membutuhkan satu opsi tambahan; untuk memberikan izin untuk direktori.

windows

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

lalu lari

sudo service mongod start

memeriksa

sudo service mongod status

dan kemudian jalankan

mongo
Віталій Мартиненко
sumber
2

Saya mendapatkan kesalahan ini di ubuntu tetapi Anda dapat mencoba dengan perintah berikut:

sudo service mongod start
Rahul
sumber
1

Solusi lain yang menyelesaikan kesalahan yang sama bagi saya, meskipun yang ini hanya mungkin jika Anda mengakses mongo (lokal) melalui koneksi SSH melalui mesin virtual (setidaknya itu setup saya), dan mungkin menjadi masalah variabel lingkungan khusus linux:

export LC_ALL=C

Juga, saya telah lebih sukses menjalankan mongo sebagai layanan daemon kemudian dengan layanan sudo mulai, pemahaman saya adalah ini menggunakan argumen baris perintah daripada file konfigurasi sehingga kemungkinan ada masalah dengan file konfigurasi saya:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
edencorbin
sumber
1

Buat folder C: data / db jika belum ada di komputer Anda. Ternyata MongoDB membutuhkan keberadaan struktur folder ini 'data / db' untuk dijalankan. Saya harap ini membantu seseorang.

Amin Balogun
sumber
1

Penyebab saya adalah ruang - jalankan ini di konsol:

df -h

atau lebih khusus:

du -hs /var/lib/mongodb/ 

untuk memeriksa penggunaan disk. Jika ~ 99% - bersihkan ruang dan coba lagi!

tsveti_iko
sumber
1

Pertama, buka untuk c:\mongodb\bin>mengaktifkan mongoDB, jika Anda melihat di konsol bahwa mongo mendengarkan di port 27017, tidak apa-apa. Jika tidak, tutup konsol dan buat folder c:\data\dbdan mulai mongod lagi

Monte Cristo
sumber
1

jika semua solusi di atas tidak berhasil mungkin maka ini mungkin bisa membantu. Di suatu tempat di telepon Anda mungkin telah membuat koneksi ke database mongodb lokal Anda melalui kotak gelandangan.

  1. gelandangan dan kemudian ssh ke mesin gelandangan Anda di mana Anda telah membuat koneksi dengan mongodb (vagrant ssh vagrant_box_name)
  2. komentar pada baris bind_ip dari /etc/mongod.conf menggunakan # (sudo nano /etc/mongod.conf)
  3. restart layanan daemon mongodb Anda (sudo service mongod restart) voila ...
Ashwin J Chhetri
sumber
1

Mulai layanan monogdb menggunakan

sudo service mongod start 

kemudian dari jendela baru atau terminal mulai mongo client menggunakan

mongo
JUTA GASHAW
sumber
0

Hapus file mongod.lock. Dan jalankan "mongod-repair". uninstall / instal ulang layanan mongod memperbaiki masalah itu untuk saya.

Terima kasih.

Tong besar
sumber
0

Akhirnya saya dapat ini dengan cara sederhana ..

buka terminal dan pergi ke lokasi mongodb. Dalam kasus saya itu

e:\mongodb\bin> 

dan ketik perintah berikut dan tekan enter ..

mongod --config e:\mongodb\mongo.config

Buka terminal lain dan mulai menggunakan mongodb

mongo.exe

Itu saja .. Anda bisa menggunakan mongo

Santhosh Kumar
sumber
0

Ini adalah pertanyaan lama, tetapi, sebagai pemula saya pikir saya akan menambahkan bahwa (menggunakan Webstorm) Anda perlu mengklik Mongo Explorer (tab di sisi kanan jendela Anda). Dari sana:

Pengaturan -Klik. -Klik tombol browse (terlihat seperti tombol dengan "..." di atasnya). -Pergi ke Program Files> MongoDB> Server> 3.4> bin> mongo.exe (versi Anda mungkin berbeda dari 3.4) -Setelah itu, klik tanda tambah hijau di sebelah kanan. Sebuah jendela akan terbuka -Masukkan nama dalam slot "Label". -Klik berlaku.

Anda sekarang harus terhubung. Memasukkan "mongod" di terminal tidak cukup. Anda harus melakukan langkah-langkah di atas juga.

Maafkan saya sebelumnya kepada Anda yang tidak menggunakan Webstorm! Tidak yakin tentang langkah-langkah menggunakan IDE lain.

David Mitchell
sumber
0

jika Anda menginstal by brew (on osx) pertama jalankan sudo mkdir /data/db start mondoDB Daemon dengan mengetikkan mongod(biarkan terbuka) dan kemudian jalankan mongo dengan mengetikkan mongotab terminal baru

majid
sumber
0

Cukup buat folder bernama "data" di drive C dan di dalam folder data buat folder lain bernama "db". Kemudian jalankan mongod.exe :)

Rohan pawar
sumber
Apa yang membuat Anda berpikir bahwa penanya memiliki Windows atau gagal menginstal MongoDB?
Nemo