mongo - sunucuya bağlanılamadı 127.0.0.1:27017


164

Ben riak ve redis gelen bu hizmetleri ile başlayan veya etkileşim için bir sorun yoktu hiç geliyorum.

Bu, mongo ile ilgili yaygın bir sorundur ve oldukça clueless. Yeniden başlatmak işe yaramaz, ben mongoda yeniyim.

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

Günlüklerde gördüğüm bu.

 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

2
IMO'nun bunun programlama ile ilgisi olmadığı için bu soruyu serverfault.com'da sormanızı tavsiye ederim .
cimnine

2
Ben de aynı sorunla karşı karşıyaydım. Onun cus mongo C klasör oluşturamıyor: / data / db Bunu tuttum mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL

Şirket dizüstü bilgisayarımı kullanırken ve C: üzerine MongoDB kurarken aynı hatayla karşılaştım. Yönetici ayrıcalıkları ve her zaman bir şey yüklediğimde veya C: 'de bir şey değiştirdiğimde yönetici kullanıcı adım ve şifremle istendiğim için, mongodb'un çalışamamasının nedeni buydu. D: üzerine kurduktan sonra hepsi iyi çalıştı.
paranza

Yanıtlar:


47

Bu hata, mongo kabuğunun mongod sunucusuyla konuşamaması durumunda göreceğiniz şeydir.

Bunun nedeni, adresin yanlış olması (ana bilgisayar veya IP) veya çalışmıyor olması olabilir. Dikkat edilmesi gereken bir şey, sağlanan günlük izlemenizin "Cum Nov 9 16:44:06" nı kapsamamasıdır mongo timestamp.

Yapabilir misin:

  1. Mongod işleminizi başlatmak için kullanılan komut satırı bağımsız değişkenlerini (varsa) sağlayın
  2. Mongod başlangıcından günlük kaydı etkinliklerinin yanı sıra, mongo kabuğu başlatma girişimi sırasında günlükler sağlansın mı?
  3. Mongod işleminizin mongo kabuğuyla aynı makinede başlatıldığını doğrulayın?

283

Normalde bu, mongo kabuğuna başlamadan önce mongod işlemine başlamadığınızdan kaynaklanır.

Mongod sunucusunu başlat

mongod

Başka bir terminal penceresi aç

Mongo kabuğunu başlat

mongo

3
Bu dava benim için çalıştı, sudo mongod --dbpath / dbpathlocation yapmak zorunda kaldı ve sonra mongo çalıştırmak için yeni terminali açtı ...
Saji

5
macOS Sierra'da benim için ne işe yaradı sudo mongodve sonramongo
Amin Jafari

Mongod çalıştırmadan önce bir / data / db dizini oluşturmak zorunda kaldım
Üniversite Öğrencisi

Tek yapmam gereken, mongodkoşmadan önce arka planda veya başka bir kabukta koşmak olduğuna inanamıyorum mongo. Ravi Hamsa'ya bağır !
Kareem Jeiroudi

Benim için cazibe gibi çalıştı!
Sobhit Sharma

86

Çözülmüş.

Bu sorun aşağıda belirtilen 4 adımla çözülebilir

1) .lock dosyasını kaldırın

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

2) Mongodb'u Onarın

mongod -–repair

3) Mongod Sunucusunu Başlatın

sudo service mongod start 

4) Mongo İstemcisini Başlat

mongo

Daha fazla ayrıntı için http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/ adresine göz atın.

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


4
Sadece merak ediyorum, /var/lib/mongodb/mongod.lock nedir ve neyin yanlış gitti?
ozn

Ubuntu 18.04'teki Madde 2mongod --repair
Aline Matos

43

Bu yöntem yalnızca veri dosyalarınızı orijinal dosyaları saklamadan onarmak istiyorsanız çalışır

Dbpath'in nerede olduğunu bulmak için- vim /etc/mongodb.conf

seçeneği kontrol et dbpath =

(Dbpath = / var / lib / mongodb var)

Varsayılan: / data / db /

Tipik yerler şunları içerir: / srv / mongodb, / var / lib / mongodb veya / opt / mongodb.

Değiştir / var / lib / MongoDB sizin ile DBPath

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

(Çizgilerin üzerinde koştuğunuz terminali çalışır durumda bıraktığınızdan emin olun, 'Ctrl + c' tuşlarına basmayın veya çıkmayın.) Mongo'yu şimdi başka bir pencerede başlatmak için komutu yazın.

Umarım bu sizin için çalışır! orijinal dosyaları korurken veri dosyalarınızı onarmak isteyenler için mongo kurtarmak


1
Ubuntu üzerinde çalışmak. - dergi sorunumu düzeltti. Gerçekten ne yapar? --journal ne için?
grep

Fedora 20'de benim için çalıştım. Şimdi ilk terminal penceresini kapatabilir miyiz?
Khayam Gondal

27

MAC OS İŞLETİM SİSTEMİ

Durumu kontrol et

brew services list

Gibi bir şey:

Name    Status  User Plist
mongodb stopped  

Başlat

brew services start mongodb

Tekrar dene

mongo veya mongo --port 27017


1
Bu bana +1 yardımcı oldu.
Sandeep

Benim için çalışmadı. Bir saattir bu MongoDB ile uğraşıyorum. Vay!!!
Glenn

bu bana yardımcı oldu, teşekkür ederim ..
Iam ByeBlogs

15

Benim durumumda:

Önce config dosyasını açıyorum

sudo vi /etc/mongodb.conf

Yorum IP ve Port bunu beğendi

#bind_ip = 127.0.0.1
#port = 27017

Sonra mongodb'u yeniden başlatın

sudo service mongodb restart
sudo service mongod restart

Son olarak, iş: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit

IP / bağlantı noktasını kaldırmak benim için çalışmadı. Aslında sunucuyu daha da kırdı. Servis tekrar başlamayı reddetti ...
Cerin

1
Bind_ip ile dikkatli olun. Bunu yorum yaparsanız, güvenliğiniz ve yetkilendirme ayarınız olmadığı sürece veritabanınıza uzak bağlantılara izin verir. MongoDB'nin varsayılan olarak kullanıcısı veya şifresi olmadığına inanıyorum, bu yüzden bunun farkında olmanız gerekiyor.
agm1984

Benim için de çalış, ama @ agm1984 yorumundan sonra güvenliği bilmiyorum, bunu sadece geliştirme modunda kullanacağım ve Mongodb Atlas Bulutunu kullandıktan sonra, bence benim durumumda daha güvenli (fakir sunucumla) becerileri: D)
Adrien V

1
@AdrienV, yerel IP bağlayıcısını kaldırmanız risklidir çünkü internetten erişime izin verir. Bu sadece geliştirme sunucusu için bir çözümdür.
Finn

bind_ip, bilinmeyen bir ek ip olarak ayarlandı. Silme / db / data hatasını çözdü ... ufff
zevero

14

Mongo'nun çalıştığından emin ol. Mongodb onarmaya çalışarak bu sorunu düzeltti, orada db çalıştırmak için gerekli dizinin oluşturulmadı bulundu. Bu hatayı gösterir

Tür:, mongodhatayı gösterecektir

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

Dbpath /data/db/(varsayılan yapılandırma) olmadığı için hata oluştu . Veri klasörü oluşturmanız ve bu klasör için izin ayarlamanız gerekir.

Sonra komutumla sistemimde bir klasör oluşturuyorum

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

sonra tekrar mongoyu çalıştırdım ve işe yaradı.


14

Cevabı biraz geç ama aynı sorunla karşılaştım

Bana yardımcı olan adımlar aşağıda.

  1. C: \
  2. "Data" klasörü oluştur
  3. "Data" içinde "db" klasörünü oluşturun
  4. açık terminal (CMD) -> EX'e gidin: " c:\MongoDB\Server\3.4\bin"
  5. mongod yazın => bu, mongo sunucusunu başlatır (açık bırakın)

GUI, EX "robomongo" kullanarak çalıştırın

Veya

yeni terminal aç (CMD) -> EX'e git: " c:\MongoDB\Server\3.4\bin" "mongo" komutunu yaz


12

Windows kullanıcısıyım ve Kasım 2018'de MongoDB'yi yükledim ve data / db dizinlerini ayarlamak istemedim. Ancak birkaç gün sonra açtığımda bir hata mesajı aldım:

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

Sonra yukarıdaki cevapları kullanarak düzeltmeye çalıştım ve işe yaramadı. Mongod'u çalıştırmayı denediğimde

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

Dosya sistemi aracılığıyla ve ayrıca cmd kullanarak (program dosyalarını) db yolunu değiştirmeye çalıştım ama bu işe yaramadı.

Benim için işe yarayan çözüm:

Açıldı Görev Yöneticisi ( ctrl + shift + esc> -) Hizmetler sekmesini ve bir MongoDB satır vardı ile durum durduruldu . Sonra sağ tıkladım ve başladım ve her şey mükemmel çalışıyor :) .


6

Yukarıdaki tüm çözüm işe yaramazsa: service ( start>search>services) öğesine gidin ve mongodb hizmetini başlatın. Ardından, cmd isteminde, bölmeye gittikten sonra şunu yazın:/>mongo


5

Mongo ile bağlantı kurmak için önce 'mongod' hizmetlerini başlatmamız gerekiyor. aşağıdaki çıktıyı görebilirsiniz:

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

Bundan sonra başka bir terminal açın ve 'mongo' yazın.

Aşağıdaki çıktı görebilirsiniz:

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

Sorununuz çözüldü :)


4

Ben de aynı sorun var sonra ben bu iki kod satırı tarafından sabit var. Umarım yardımcı olur

systemctl start mongod
systemctl enable mongod

Sorunum düzeltildi!
S.M_Emamian

3

Ben bir çok arama yaptıktan sonra aynı sorunu ile karşılaşıyorum ben aşağıdaki çözmek:

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

bu işe yaradı! ama geçici, sistemimi yeniden başlattığımda tekrar çalışmadı
Predator X


2

Bu bugün benimle oluyordu ve bunu şu şekilde çözdüm.

Makine: Windows 10 makinesini kullanıyorum ve en son MongoDB - Topluluk sürümünü indirdim.

Sorun şu ki, ben C:\data\dbyaratmadım.

Oluşturmadan C:\data\dbCMD terminalini açtım ve mongodterminaldeki komutu kullanarak veritabanını başlattım

C: \ YourInstallationPath \ bin> mongod

Ve mongokomuta attığımda sorunu alıyordum.

Twist, gerekli klasörleri oluşturdum ama hala sorunu alıyordum. Bunun nedeni, mongo sunucusunun zaten çalışıyor olmasıdır. Düzeltmek için, mongodkomutu tekrar çalıştırdım ve otomatik olarak başvurdu C:\data\db.

Diğer kullanıcılar eklemeyi önerdiler, C:\data\dbancak mongodtekrar yürütmekten bahsetmediler , bu da sorunumu tam olarak çözdü.


2

MacOS'ta demlemek kullanarak kurulumdan sonra mongodb bağlamak için aynı sorun vardı.

Sorun da oldu mongod.lockama önce mongodb 3.6 yüklü ve veritabanı dizini vardı /usr/local/var/mongodbve eski dosyaları vemongod.lock

Basit eski veritabanı dosyalarımı farklı bir klasöre taşındı ve her şeyi kaldırıldı /usr/local/var/mongodb

Sonra yeniden başlatıldı:

brew services restart mongodb

Ve şimdi iyi çalışıyor.


2

benim durumumda windows ve ubuntu, oluşturmak gerekiyordu /data/db kök klasör . Ubuntu, ben bir ek seçenek gerekli; dizin izinleri vermek.

pencereler

mkdir c:/data/db

ubuntu:

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

o zaman koş

sudo service mongod start

Kontrol

sudo service mongod status

ve sonra koş

mongo

2

Ubuntu üzerinde bu hatayı alıyordum ama aşağıdaki komutu deneyebilirsiniz:

sudo service mongod start

1

Bu hatayı benim için çözen başka bir çözüm, ancak bu yalnızca bir sanal makine aracılığıyla bir SSH bağlantısı üzerinden mongo'ya (yerel olarak) erişiyorsanız (en azından benim kurulumum) olabilir ve linux'a özgü bir ortam değişkeni sorunu olabilir:

export LC_ALL=C

Ayrıca, daha sonra sudo hizmet başlangıcı ile bir daemon servisi olarak mongo çalışan daha başarılı oldu, benim anlayış bu yapılandırma dosyası yerine komut satırı argümanları kullanır, bu yüzden büyük olasılıkla benim yapılandırma dosyası ile ilgili bir sorun:

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

1

Bilgisayarınızda yoksa C: data / db klasörünü oluşturun. MongoDB, bu klasör yapısının 'data / db' varlığını gerektiriyor. Umarım bu birine yardımcı olur.


1

Benim nedenim boşluktu - bunu konsolda çalıştırın:

df -h

veya daha spesifik olarak:

du -hs /var/lib/mongodb/ 

disk kullanımını kontrol etmek için. ~% 99 ise - biraz alan temizleyin ve tekrar deneyin!


1

İlk olarak, c:\mongodb\bin>mongoDB'yi açmak için gidin, eğer konsolda mongo'nun 27017 bağlantı noktasında dinlediğini görürseniz, sorun değil, eğer değilse, konsolu kapatın ve klasör oluşturun c:\data\dbve mongod'u tekrar başlatın


1

yukarıdaki tüm çözüm belki işe yaramazsa, bu yardımcı olabilir. Hattın aşağısında bir yerlerde, vagrant kutuları aracılığıyla yerel mongodb veritabanınıza bağlantı yapmış olabilirsiniz.

  1. mongodb ile bağlantı kurduğunuz vagrant makinenize vagrant ve sonra ssh (vagrant ssh vagrant_box_name)
  2. #et (sudo nano /etc/mongod.conf) kullanarak /etc/mongod.conf adresinden bind_ip satırını yorumlayın
  3. mongodb daemon hizmetinizi yeniden başlatın (sudo service mongod restart) ...

1

Monogdb hizmetini kullanarak başlat

sudo service mongod start 

daha sonra kullanarak yeni pencereden veya terminal başlatma mongo istemcisinden

mongo

0

Mongod.lock dosyasını kaldırın. Ve "mongod -repair" i çalıştırın. mongod servisini kaldırmak / yeniden yüklemek benim için bu sorunu düzeltti.

Teşekkürler.



0

Sonunda bu basit bir şekilde var ..

terminali açın ve mongodb konumuna gidin. Benim durumumda

e:\mongodb\bin> 

ve aşağıdaki komutu yazın ve enter tuşuna basın.

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

Başka bir terminal açın ve düğmeyi kullanarak

mongo.exe

İşte bu .. mongo kullanabilirsiniz


0

Bu eski bir sorudur, ancak bir acemi olarak, (Webstorm kullanarak) Mongo Explorer'a (pencerenizin en sağındaki sekme) tıklamanız gerektiğini eklediğimi düşündüm. Buradan:

Ayarları tıklayın. -Tık tıklayın düğmesi (üzerinde "..." ile bir düğme gibi görünüyor). -Program Dosyaları> MongoDB> Sunucu> 3.4> bin> mongo.exe (sürümünüz 3.4'ten farklı olabilir) -Bundan sonra sağdaki yeşil artı işaretini tıklayın. Bir pencere açılacaktır-"Etiket" yuvasına bir ad girin. -Uygula'yı tıklayın.

Şimdi bağlı olmalısınız. Terminalde "mongod" girmek yeterli değildir. Yukarıdaki adımları da yapmanız gerekir.

Webstorm kullanmayanlara şimdiden özür dilerim! Diğer IDE'leri kullanma adımlarından emin değilim.


0

u tarafından demlemek (osx üzerinde) ilk çalıştırma sudo mkdir /data/db mondoDB Daemon yazarak başlatın mongod(açık bırakın) ve sonra mongoyeni terminal sekmesine yazarak mongo çalıştırın


0

Sadece C sürücüsünde "veri" adlı bir klasör oluşturun ve veri klasörü içinde "db" adlı başka bir klasör oluşturun. Ardından mongod.exe'yi yürütün :)


Askerin Windows'a sahip olduğunu veya MongoDB'yi yükleyemediğini düşündüren nedir?
Nemo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.