127.0.0.1:27017 sunucusuna bağlanılamadı


160

Aşağıdaki hatayı alıyorum:

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

Mongodb'u başlatmaya çalıştığımda olan şey budur:

* Starting database mongodb                                             [fail]

Zaten denedim mongo --repair

Ben var, lib ve data / db ve log mongodb chown ve chmod yaptı .

Emin değilim baska ne yapabilirim. Baska öneri?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

DÜZENLE:

Kilidi kaldırdıktan sonra mongod onarımı yaptım ve bu hatayı aldım:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

sudo ile yaptım:

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Ama yine de aynı problemi yaşıyoruz.


1
Sanırım bu bağlantı mongo
Med7at

8
sudo service mongod restartbenim için çalıştı
Sudip Bhandari

Yanıtlar:


32

Günlük, eski bir kilit dosyası olduğundan mongodb'un sonlandığını gösterir.

Günlük tutma ile çalışmıyorsanız ve çalışmıyorsanız kilit dosyasını kaldırın, onarımı çalıştırın ve mongodb'u yeniden başlatın.

Günlük kaydı açıkken çalıştırıyorsanız veya çalıştırıyorsanız , ilgili Mongo DB belgelerine bakın . "Günlük kaydı ile çalışıyorsanız, tutarlı bir duruma dönmek için onarım yapmamalısınız" derler. Eğer günlük tutuyorsanız, onarım işleri daha da kötüleştirmiş olabilir.


25
Bir onarımın şeylere zarar vermesi kötü!
UpTheCreek

1
Günlük kaydı etkin durumda çok freqeuntly bir bağlantı reddetti hata alırsam ne yapmalı?
Shashank

149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

1
merhaba Nanhe Kumnar terminalde ilk yol nedir. Cd / usr / local / opt / mongodb / klasörüne mi gitmeliyiz, aşağıdaki sorunla karşılaşıyorum Vijayvir-Singh: ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm: / var / lib /mongodb/mongod.lock: Böyle bir dosya veya dizin yok Vijayvir-Singh: ~ vijayvir $
Vijayvir Sing Pantlia

@vvss önce dosyanın yolunu bulur. bunu kullan. mongod.lock bulun
Nanhe Kumar

9
2.4.8 sürümünde /data/db/mongod.lockbunun yerine/var/lib/mongodb/mongod.lock
Loolooii

84

Kaçtın mı mongod önce koştun mongomu?

Mongodb için kurulum talimatlarını http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ adresinden takip ettim ve sadece mongomongo işlemini çalıştırmadan önce koştuğunuzda sizinle aynı hatayla karşılaştım mongod. Mongodb'u kurmanın da başlatacağını düşündüm, ancak mongodmongodb'a ihtiyaç duyan başka bir şey yapmadan önce manuel olarak başlatmanız gerekir .


10
Benim sorunum buydu. Bunun "Mongo ile Başlarken" belgelerinde açıkça anlaşılmadığına şaşırdım.
jononomo

Bu, Kullanıcı Deneyimi açısından gerçekten bir anlam ifade etmiyor. mongo.exeDB başlatan olmalıdır.
Moshe Karmel

58

Bunun nedeni, mongod işleminin devre dışı kalmasıdır, mongod sürecini kaldırmak için aşağıdaki komutları çalıştırmanız gerekir:

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

Umarım bu size yardımcı olur.


2
Sorun çözüldü. Teşekkür ederim. Komutları sudo service mongod stopve sudo service mongodb stopilk komuttan önce eklerdim, çünkü bazı insanlar hala çalışıyor olabilir.
Georgi Georgiev

1
Mongoyu yeniden başlatmama yardımcı oldu. Ancak artık eski veritabanına erişmek mümkün değil. Burada bana yardım eder misiniz?
Ehsan

13

Deneyin

sudo service mongodb start

Bu benim sorunumu çözdü.


sudo service mongod startVesudo service mongodb start
geckob

Çok emin değilim ama tahmin mongodb hizmet adı ve mongod program dosyasının adıdır.
潘博韜

7

Dosya sistemi boş alanınızı kontrol edin ve daha azsa artırın. Bu da mongo'nun başlamamasına neden olabilir. /Var/log/mongodb/mongodb.log dosyasını kontrol edin.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

Bu bana oldu ve /etc/mongod.conf dosyasına true = küçük dosya ekledim
Carlos

7

Daha mongodönce koşmayı deneyinmongo .

sudo /usr/sbin/mongod benim açık kullanımımda

Bu benim sorunumu çözdü,


6

bu yüzden önce aşağıdaki komutla mongod.lock dosyasını kaldırmanız gerekir

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

ve sonra aşağıdaki komutu vererek mongo hizmetini yeniden başlatın

sudo service mongod restart 

4

netstat -anp | grep 27017Bağlantı noktasının başka bir işlem tarafından kullanılıp kullanılmadığını kontrol edebilirsiniz .


garip, bunu anladım: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (Tüm süreçler tanımlanamaz, sahip
olunmayan

2
Kök olmayan bir kullanıcı olarak yürütülürken bu normal bir sonuçtur, çünkü netstat yalnızca kullanıcılarınızın görmesine izin verilen işlemleri gösterecektir.
Efren

sudo netstat -anp kullanabilirsiniz | grep 27017 bu uyarıyı geçmek için
Wiston Coronell

Bu benim için çalışıyor, çok teşekkürler. Ben verilen kod unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock çalıştırdığınızda bunu alıyorum ve .sock dosyasını kaldırdım, şimdi her şey yolunda.
Abel

4

Windows'ta cmd'yi Yönetici olarak çalıştırın:

  1. Dizin oluştur:

    mkdir c: \ mongo \ data \ db

  2. Kurulum hizmeti:

    mongod.exe - yükleme --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb

  3. MongoDB'yi başlat:

    net başlangıç ​​MongoDB

4.Mongo Kabuğunu Başlat:

c:\mongo\bin\mongo.exe

Bu çözüm benim için iyi çalışıyor


3

Bu benim için çalıştı:

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

3

İleride başvurmak üzere benzer hataları önlemek için şu adımları izleyin:

1. MondoDB indir https://www.mongodb.com/

2.İndirilenler klasörünüze veya mondodb indirmenizi kaydettiğiniz herhangi bir klasöre bir terminal ve cd açın (cd'ye geçmeden önce mongodb klasörünüzü çıkardığınızdan emin olun)

cd Downloads

3. Mongodb'u usr / yerel yolunuza taşıyın

sudo mv mongodb-osx-... /usr/local/mongodb

4. cd yerel klasörünüze

cd /usr/local/mongodb

5. yeni bir dizin oluşturun

sudo mkdir -p /data/db

6.cd yeni oluşturulmuş dizine

cd /data/db

7. mongo izinleri verin

sudo chown YourMacUserName /data/db

8. Ardından .bash_profile dosyanızı açın / açın

Bunu yapmak için şu adımları izleyin:

Sizin bir de yeni terminal

1 . cd 2 .pwd 3 .ls -l

Terminalinizdeki dosyalar listesinde .bash_profile dosyasının görünüp görünmediğini kontrol edin

değilse -bash_profile dosyasını oluşturmaz

.Bash_profile oluşturuluyor:

Terminalinizde

dokunun. bas_profil

// zaten bir .bash_profile dosyanız varsa bu adımı atlayın

8. adım:

Sonraki sizin Terminalde:

open .bash_profile

Ve açılan pop bash dosyasında aşağıdakileri ekleyin:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

Ve sonra kurtar . (Dosya Kaydet veya S / CMD + S komutu)

Adım 9: Terminalinize geri dönün :

source .bash_profile

Şimdi iki terminal açın . Biri mondo daemon'unuz için diğeri mongo için .

Terminal 1: Terminal tipinizde: Mongod

mongodb

Çıktı: Mongod Terminali

Terminal 2:

mongo

Çıktı: Mongo terminali

Ayrıca mongod'unuzu terminalinizde başlatırken aşağıdaki yazım hatası yapmadığınızdan emin olun: Bu yanlış

mongo d

aşağıdaki hatayı veriyor : 127.0.0.1:27017'ye bağlanamadı, içinde (anketten sonra hata olup olmadığını kontrol edin), nedeni: Bağlantı reddedildi

Doğru:

mongod

(Mongo ve D. kelimeleri arasında boşluk olmamalıdır .. mondod

Son olarak , terminallerinizde mongo çalıştırmadan önce mondod çalıştırmanız gerektiğini unutmayın .



2

Sık sık denedikten sonra nihayet sorunu gidermek zorunda ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

Bu hata MongoDB'nin bağlama IP ayarından kaynaklanabilir. MongoDB'nin yapılandırma dosyasını şuradan kontrol edebilirsiniz:

$ sudo vi /etc/mongodb.conf

Benim durumumda, bağlanma IP'si sunucunun intranet adresine, aşağıdaki gibi ayarlanmıştır:

bind_ip = 10.10.1.14 
#port = 27017

Yani mongo kabuk türüne bağlanmak için bir IP parametre vermek var:

$ mongo 10.10.1.14

Yapılandırmayı değiştirdiyseniz mongodb hizmetini yeniden başlatmayı unutmayın.


2

Ben mongo sürüm 3.2.1 var /data/db/ve bundan sonra ve sonra kilit dosyasını silmek zorunda , koştu mongodve başarıyla başladı.

>rm /data/db/mongod.lock
>mongod


1

Windows işletim sistemimdeki veri dizininin içindeki mongod.lock kaldırıldıktan sonra hala aynı hata iletisini gösteriyordu. Mongo komutunun hatasız çalışmasını sağlamak için --dbpath ile mongod çalıştırmak zorunda kaldım.


1

Yanıtlar alınmasına rağmen, içindeki ağ hataları hakkında konuşmak istiyorum MongoDB.

Ağ hataları MongoDB

Güvenli yazma endişelerini belirlemek, güvenli olduğumuzdan emin olmak için tam kanıt yöntemi değildir. Diyelim ki w=1& j=trueayarlandı, ya yazma onayı sunucudan alınmadıysa? Muhtemelen olmadı, ama olmuş olabilirdi. Bunun olmasının nedeni ağ hataları olmasıdır - olumlu bir yanıt alamamamızın nedenleri vardır. Böylece, talebi dilden bir sürücü aracılığıyla uygulamadan gönderebiliriz.mongodbaşarılı bir şekilde tamamlayabilir ve ardından bir TCP sıfırlaması olabilir ve ağ aslında hiç yanıt almayacağımız şekilde sıfırlanabilir. Böylece, bir hata alabiliriz ve hatada bir hata aldığımızı varsayabiliriz. Olmadı, ama olabilir.

Bir kesici uç için, ona karşı korumak mümkündür. Mümkün çünkü sürücünün _idbir eklenti oluşturmasına izin verirsek ve bir eklenti yaparsak - bu eki birden çok kez yapabiliriz ve herhangi bir zarar olur. Bunu 1 yaparsak Çünkü st zaman ve biz bir hata olsun ve biz bir ağ hatası çünkü insert tamamladıkları olup olmadığından emin değiliz, o zaman biz sadece tekrar yapabiliriz. Ve tekrar yapmamız şartıyla, tam olarak gerçekleştirmek için tyr_id . En kötü senaryo, eklemeye çalıştığımızda yinelenen bir anahtar hatası alacağız.

Ancak, güncelleştirme sorunun oluştuğu yerdir. Özellikle, öğe güçlü olmayan güncelleme, örneğin bir $inkkomut içeriyordu . Veritabanına belirli bir alanı artırmasını söylüyoruz. Bu durumda, bir ağ hatası alırsak ve güncellemenin gerçekleşip gerçekleşmediğini bilmiyorsak. Şimdi, belki de onlarla güncellemenin gerçekleşip gerçekleşmediğini kontrol edebileceğimiz değerler hakkında yeterince bilgimiz var. Ancak, bu alan için veritabanındaki başlangıç ​​değerini bilmiyorsak, ağ hatası durumunda olup olmadığını bilmemiz mümkün değildir. Bu tür sorunlar, ince bir ağda oldukça nadirdir.

Gerçekten ne pahasına olursa olsun bundan kaçınmamız gerekiyorsa, belgenin tam değerini veritabanından okuyarak ve sonra potansiyel olarak silerek tekrar ekleyerek veya sadece ekleyerek tüm güncellemelerimizi ekler haline getirmektir. yeni bir.

Yazma başarılı olsa bile uygulamanın geri hata alabilmesinin nedenleri:

  • Uygulama ve sunucu arasındaki ağ TCP bağlantısı, sunucu bir yazma aldıktan sonra ancak bir yanıt gönderilmeden önce sıfırlandı.
  • MongoDBSunucu yazma alınması ve buna tepki arasında sona erer.
  • Ağ, yazma zamanı ile istemcinin yazma işlemine yanıt aldığı zaman arasında başarısız olur.

1

Bu benim için çalışıyor Mongodb kullanımını durdurmak için:

use admin
db.shutdownServer()

Ve yeniden başlatmak için:

sudo service mongod restart


0

Ortam Değişkenleri'nde bölmeyi PATH'e eklemek yardımcı oldu.

GOTO Yükleme Yolu ../bin dosyasını Windows'taki ortam değişkenlerindeki PATH değişkenlerine kopyalayın


0

tipi pencereler + r ve aşağıdaki girmek

services.msc

MongoDB'yi başlat

şimdi cmd'ye "mongo" yazın ve mongo.exe dosyasının bulunduğu yolda ilgili çalışmaya başlayın.


0

1. d sürücüsünde yeni klasör oluşturun: / data / db

2.D'de açık terminal: / data / db

3. mongod yazın ve girin.

4. Mongo yazın ve girin.

ve mongodb'unuz gerildi ............



0

simple Run Two yorumladı

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



0

Hata: Sunucuya bağlanılamadı 127.0.0.1:27017

Bu WINDOWS kullanıcıları için kod buraya girin çözümdür 1. Dizin oluşturun:

mkdir c:\mongo\data\db
  1. Kurulum hizmeti: önce CD ile MongoDB program dosyalarında bin dizininize gidin

mongod.exe --install --logpath

  1. MongoDB'yi başlat:

    net start MongoDB

4.Mongo Kabuğunu Başlat:

`c:\mongo\bin\mongo.exe` or

kutuya kadar git ve gir mongo

Not: Terminali Yönetici modunda açın


0

Ubuntu 18.04LTS: Sorun, önceki sürümümü tamamen kaldırdığımda ve 4.2.6 yüklediğimde ortaya çıkıyor

Google'ın saatlerce çalışmasından sonra başka bir sorunu çözdüm

MongoDB Başlatılamıyor - *** fassert () hatasından sonra iptal ediliyor

Her şey yolunda görünüyor çünkü sorun sunucuya bağlanamadı hakkında umutsuz .

Sonunda, işletim sistemini yeniden başlatmaya ve ne olduğunu tahmin etmeye karar verdim ... BINGO

sudo mongo // works like a charm
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.