127.0.0.1 shell / mongo.js sunucusuna bağlanılamadı


88

ubuntu'mda mongodb kurduğumda, deniyorum: ./mongo bu hatayı gösteriyor:

 couldn't connect to server 127.0.0.1 shell/mongo.js

Peki ne yapabilirim ,

Teşekkürler


Nasıl kurdunuz? Bir yetenek kullandın mı? Tarbalı doğrudan indirdiniz mi?
Bryan Migliorisi

1
Bu hatayı aldım ve bunun nedeni ubuntu'da mongodilk
Connor Leech

Yanıtlar:


124
  • Kilit dosyasını manuel olarak kaldırın: sudo rm /var/lib/mongodb/mongod.lock
  • Onarım komut dosyasını çalıştırın: sudo -u mongodb mongod -f /etc/mongodb.conf --repair

Lütfen aşağıdakilere dikkat edin:

  • Bu komutu mongodb kullanıcısı olarak çalıştırmalısınız. Eğer onu root olarak çalıştırırsanız, o zaman root, mongodb arka plan programını çalıştırmak için gerekli olan / var / lib / mongodb / dizinindeki dosyalara sahip olacaktır ve bu nedenle daemon trys daha sonra mongodb kullanıcısı olarak çalıştırıldığında, başlatma iznine sahip olmayacaktır. . Bu durumda şu hatayı alırsınız: Kilit dosyası için kilit dosyası oluşturulamıyor / açılamıyor: /var/lib/mongodb/mongod.lock errno: 13 İzin reddedildi, sonlandırılıyor.
  • Ubuntu'da -f bayrağını kullanarak /etc/mongodb.conf yapılandırma dosyasını belirtmelisiniz. Aksi takdirde, veri dosyalarını yanlış yerde arayacak ve şu hatayı göreceksiniz: dbpath (/ data / db /) yok, sonlanıyor.

Harika bağlantı. Sorunu tam olarak çözdüm.
jaketrent

2
mongodb kullanıcısı olarak nasıl çalıştırılır?
user4951

Kendinizi mongodb grubuna eklemeniz yeterlidir: useradd -G mongodb fady, fady'yi kullanıcı adınızla değiştirin.
fady mohamed osman

Onarımı birçok kez çalıştırdım ancak .lock dosyasını (belirttiğiniz gibi) manuel olarak kaldırana kadar çalışmadım, şimdi çalışıyor, ancak sadece .lock dosyasını manuel olarak kaldırmanın neden işe yaradığını bilmek istiyorum?
Shahzeb Khan

2
Hem bu cevabın bilgisini hem de @boulder_ruby'nin cevabını kullanmak zorunda kaldım. Bunun nedeni '/ data / db /' dosyam eksikti. Belki bu cevabın daha eksiksiz olması için iyi bir güncelleme olabilir.
Fabricio Buzeto

32
sudo rm /var/lib/mongodb/mongod.lock   
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo service mongodb start

İşte hepsi bu işlemleri yaptıktan sonra mongoya başlamak bazen biraz zaman alıyor.


`Sudo -u mongodb mongod -f /etc/mongodb.conf --repair`'i denersem, işte şunu elde ederim:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus

21

$ Mongod çalıştırmaya çalışıyorum

Gibi bir hata alırsanız

MongoDB shell version: 2.0.5
connecting to: test
Fri Jun  1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
Fri Jun  1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local
Fri Jun  1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun  1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun  1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun  1 11:24:47 [initandlisten] options: {}
Fri Jun  1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun  1 11:24:47 dbexit: 
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun  1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun  1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun  1 11:24:47 dbexit: really exiting now

Sonra oldukça yaygın olan temel bir başlangıç ​​hatasıyla karşılaşıyorsunuz.

Öntanımlı olarak mongod, veritabanı dosyaları için bu durumda mevcut olmayan / data / db'yi kullanmaya çalışacaktır.

Başlayamazsın

mongo 

sen halledene kadar

mongod.

Bu dizinleri oluşturmayı deneyin ve mongod sürecini çalıştıran aynı kullanıcı tarafından yazılabilir olduklarından emin olun.

** Benzer soruya bakın - "Hata: 127.0.0.1 shell / mongo.js sunucusuna bağlanılamadı" hatası alınıyor ve mac osx lion'da mongodb çalıştırmaya çalışırken


dbpath'ı da şu şekilde ayarlayabilirsiniz: mongod --dbpath ../data
cbaigorri

20

Bu aslında bir hata değil ... Burada olan şey, Mongo'nun yerel veritabanı sunucusunu çalıştırmak için bir arka plan programına güvenmesidir , dolayısıyla kabuğunuzdaki mongo sunucusunu "ateşlemek" için , mongo hizmetini başlatmanız gerekir. ilk.

For Fedora Linux (bir wich Distro I kullanım) Bu komutları çalıştırmak zorunda:

1 sudo service mongod start
2 mongo

İşte buyur! sunucu çalışacak. Şimdi, Mongo hizmetinin sistem önyüklendiğinde başlamasını istiyorsanız, çalıştırmanız gerekir:

sudo chkconfig --levels 235 mongod on

Ve hepsi bu! Bunu yaparsan, şimdi kabukta mongo yazmalısın sunucuyu başlatmak için ancak bu hemen hemen budur, sorun şu ki önce HİZMET'i ve sonra SUNUCU'yu başlatmanız gerekir :)

Not: Gönderdiğim komutlar, sadece fedora'da değil, diğer linux dağıtımlarında da işe yarayabilir ... Belki de kullandığınız dağıtıma bağlı olarak bazı kelimeleri ayarlamanız gerekmeyebilir ;)


Aynı Çözüm şu soru için de geçerlidir: stackoverflow.com/questions/7958228/…
Jmlevick

Pek çok kez kafamı uzun süre kaşıdım ve sonunda şunu fark ettim: 'oh, sadece sudo yapmalıyım. "
ben yazar

2
ve Debian / Ubuntu varyantları için: sudo service mongodb start
ljs.dev

11

Mongo'yu kurmaya çalıştığımda da aynı sorunu yaşadım. Hata aldım,

Hata

"Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84"

Çözüm:

İlk önce mongod'u kullanarak kurun:

sudo apt-get install mongodb-server

Sonra yazın

mongod --dbpath /mongo/db

Sonra

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

Sonra

sudo -u mongodb mongod -f /etc/mongodb.conf  --repair

Teşekkür ederim


Bu yöntem, mongo'daki mevcut veritabanlarını silecek mi?
Evan

6

Sen kilit dosyası silmeniz gerekir mongod.lockveya /var/lib/mongodb/mongod.lockdaha sonra çalıştırmak için gereken, ubuntu üzerinde mongod.exeveya service mongodb startubuntu, sonra çalıştırın üzerinde mongo.exeveya mongoubuntu üzerinde.


OP Ubuntu'da, bu yüzden herhangi bir .exedosya kullanmayacaklarından oldukça eminim .
ben_ve

Bu hata mesajını alıyorum ve dosya sistemimde "mongod.lock" bulamıyorum. Bu talimatlar Mac OSX için geçerli mi?
boulder_ruby

5

Ya mongod'unuz çalışmıyor ("ps" komutunu kullanarak kontrol edin) veya localhost üzerinde değil, bazı dış IP adreslerinde dinliyor. Bu yüzden önce 'mongod' çalışıyorsa işlem listesini kontrol edin. Varsa, ilgili bağlantı noktası için "netstat -nap" ile kontrol edin.

Elbette mongod'u konsolda manuel olarak başlatabilir veya hatta mongod günlük dosyasına bakabilirsiniz (eğer yapılandırılmışsa ... mongod'u nasıl kurduğunuza bağlı olarak).


5

Öncelikle / var / lib / mongodb / klasörünüzdeki (veya dbpath'in işaret ettiği klasördeki) tüm dosya ve dizinlerin mongodb kullanıcısına ve mongodb grubuna ait olduğundan emin olmalısınız.

cd /var/lib/mongodb/
sudo chown mongodb filename.*
sudo chgrp mongodb filename.*
sudo chown -R mongodb directory
sudo chgrp -R mongodb directory

(Dosya adını ve dizini ilgili adlarıyla değiştirin)

Ardından kilidi kaldırabilir, veritabanını onarabilir ve daha önce de bahsettiğimiz gibi arka plan programını yeniden başlatabilirsiniz:

sudo rm /var/lib/mongodb/mongod.lock   
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo service mongodb start

Nasıl olur da buna olumlu oy verilmez? Bu, baktığım yarım düzine SO girişi arasında benim için işe yarayan tek çözümdü. Teşekkürler bayım.
CUM

Yapılandırma dosyasıyla başlama ve onarımı zorlama komutu sudo -u mongodb mongod -f /etc/mongod.conf --repairUbuntu
14'tedir

5

Önce mongo sunucunuzu şu şekilde başlatın:

Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log

Ardından başka bir terminal penceresi açın ve kabuğu açın

Users-MacBook-Pro:csv1 Admin$ mongo

2

Ayrıca, kök bölümünüzün mongod'u başlatmak için yeterli alana sahip olup olmadığını kontrol edin.

df -h /

Mongod lansmanında şöyle bir şey göreceksiniz:

Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 12 17:02:59.159 [initandlisten] 
Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 12 17:02:59.159 [initandlisten] 
Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 12 17:02:59.159 dbexit: 
Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...

1

Ubuntu'da şunu deneyin:

sudo invoke-rc.d mongodb start

1

$ PATH ve İzin sorununun birleşimi olabilir.

Aşağıda verilen adımları uygulamayı deneyin:

$ PATH değişkeninizi MongoDB bin dosyanızı gösterecek şekilde güncelleyin. Benim durumumda, MongoDB'yi bu klasöre kurun:

/usr/local/Cellar/mongodb/2.4.6/

$ PATH değişkeninizi güncellemek için aşağıdakileri yapın:

$ sudo vi /etc/paths

Ardından, Vi'ye metin eklemek için 'i'ye basın ve MongoDB yolunuzu' yollar 'dosyasının sonuna ekleyin ve terminali yeniden başlatın.

/usr/local/Cellar/mongodb/2.4.6/bin

Vi düzenleyiciden kaydetmek ve çıkmak için 'Esc: w q' kullanın.

Yol değişkeninizi görüntülemek için yankı kullanın:

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin

Şimdi Mongo sürümünü kontrol etmeye çalışın, eğer takip ederseniz doğru yoldasınız demektir!

$ mongo --version
MongoDB shell version: 2.4.6

Şimdi veritabanı dizinini oluşturmamız gerekiyor. MongoDB belgelerinde önerilen varsayılan '/ data / db' konumunu kullandım. Mongo herhangi bir günlük oluşturmaya çalışırken herhangi bir izin sorununu önlemek için bir günlük dizini de oluşturdum. Sahipliği değiştirin ve bu işi yapar.

$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data

Şimdi, MongoDB için 'mongod' komutunu ilk çalıştırdığımızda sağlanacak varsayılan bir yapılandırma dosyası oluşturacağız. Şimdi, 'mongod'un gelen veri bağlantılarını dinleyecek bir hizmet başlatacağını da belirtmek isterim. Bu, '$ service mysqld start'ın çalıştırılmasına benzer. Devam edelim ve yapılandırma dosyasını oluşturalım. Lütfen çok temel bir yapılandırma dosyası oluşturduğumu unutmayın. Bununla birlikte, MongoDB'yi yapılandırmak için birçok başka değişken ekleyebilirsiniz. MongoDB ile ilk defa oynuyorum, bu yüzden MongoDB dokümanları hakkında okuduğum kadarını biliyorum!

$ sudo vi /etc/mongodb.conf

Aşağıdakileri ekleyin:

fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true

Lütfen MongoDB sunucusu için varsayılan portun 27017 olduğunu unutmayın. 5. Adımda oluşturduğunuz dbpath ve logpath için kendi yolunuzu kullanın. Conf dosyasını kapatıp kaydetmeyi unutmayın.

Şimdi hepimiz MongoDB hizmetimizi başlatmaya hazırız. İki Terminal örneğini açın. Terminal 1'e şunu yazın:

$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting

Yukarıdaki mesajı alırsanız, Mongod hizmetinizi başarıyla başlattığınızı bilin.

Şimdi, ona bağlanmak için, aşağıdaki Terminal 2 tipinde:

$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

Uyarıları dikkate almayın, ancak 'test' veritabanına başarıyla bağlandınız! Güzel!

Bu kadar. MongoDB kopyasını Mac'ime ilk kez kurmaya çalıştığımda bu çözümü uyguladım. Bunun size de yardımcı olup olmadığına bakın.

Ayrıntılı gönderi için buraya gidebilirsiniz - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .

Umut ediyorum bu yardım eder!

Şerefe, Chinmay


Bu bağlantı soruyu cevaplayabilirken, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse yalnızca bağlantı yanıtları geçersiz hale gelebilir.
Radim Köhler

@ RadimKöhler, uyarılar için teşekkürler. Cevabı düzelttim. Umarım bu birine yardımcı olur. Şerefe.
Chinmay

1

Bu sorunu ubuntu
12.04'te aşağıdaki adımları izleyerek çözdüm : 1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) Mongo'yu kaldırdım ve tekrar kurdum
4) sudo service mongodb restart

ve her şey yolunda

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.