MongoDb, Code 100 ile kapanıyor [kapalı]


91

İlk MongoDb'mi kurmak için MongoDb Belgelerini takip ettim,

MongoDB'yi komutu kullanarak başlattığımda

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Aşağıdaki hatayı alıyorum görüntü açıklamasını buraya girin

Yanıtlar:


149

MongoDB, veritabanını depolamak için bir klasöre ihtiyaç duyar. Bir C:\data\db\dizin oluşturun :

mkdir C:\data\db

ve ardından MongoDB'yi başlatın:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Bazen C:\data\dbönceki kurulum nedeniyle klasör zaten mevcuttur. Yani bu nedenle mongod.exeişe yaramazsa, C:\data\dbklasördeki tüm içeriği silebilir ve mongod.exetekrar çalıştırabilirsiniz .


Hatanın ayrıntılarını görürseniz, dizinin C:\data\db\ bulunamadığını belirten bir satır vardır . Kullanın:mkdir C:\data\db
cespon

@cespon Gold tag ..: P
Aravind

Benimki aslında/mongodb_data/db
Fabricio

Veri dizininin ve dosyaların mongodb kullanıcı ve grubuna (linux üzerinde) ait olduğundan emin olun.
PeterM

71

MacOS kullanıcılarının bu sorunu çözmesi için:

Aşağıdaki adımları izlemeniz gerekir:

"Db" dizinini oluşturun. Mongo veri dosyalarının yaşayacağı yer burasıdır. Aşağıdakileri çalıştırarak dizini varsayılan konumda oluşturabilirsiniz:

sudo mkdir -p /data/db

Şunları /data/dbçalıştırarak dizinin doğru izinlere sahip olduğundan emin olun :

sudo chown -R `id -un` /data/db

Artık hazırsınız sudo mongodve Mongo sunucusunu başlatmak için koşabilirsiniz .

Sadece koşarsan çalışmıyor mongod

Kaynak .


5
16.04 ubuntu'da aynı
Manoj Rana

mkdir: /data/db: Read-only file systemİlk komutu çalıştırdığımda anladım . Bunu nasıl düzeltebilirim? Teşekkür ederim.
LC

@LC mkdir komutuna sudo ekle
Itay Bachar


15

C:\data\dbWindows'ta varsayılan db klasörünü değiştirmek için komut şu şekildedir :

--dbpath

Örneğin:

\mongod --dbpath C:\myfolder

7

Mac Kullanıcıları

MongoDB'yi aşağıdakilerle çalıştırmak yerine:

sudo mongod

Bunun mongodyerine şunları kullanabilirsiniz :

  1. Mongodb'un veri klasörünü bulun (genellikle ~ / data)
  2. İle okuma + yazma izni ekleyin sudo chmod -R ugo+rw data

sudoMongodb ( sudo mongod) çalıştırırken kullanmanız gerekiyorsa , bu, mongodb veri klasöründe okuma ve yazma izniniz olmadığı anlamına gelir.


1
Bunun için teşekkürler. Okuma + yazma izni eklemem gerekiyordu / data Neyi yanlış yaptığımı anlamıyorum ama veri klasörümü ~ / Applications / mongodb / data
vinsentos

3

Lütfen aşağıdaki adımları uygulayın:

  1. Diğer arkadaşların da bahsettiği gibi, veritabanı verilerinizin depolanması için önce bir dizin oluşturmalısınız. Bu klasör şunun gibi bir şey olabilir:

    C: \ mongo-verileri

  2. Komut satırından mongodb'yi kurduğunuz yere ve mongod.exe'nin bulunduğu yere gidin. Benim durumumda tam yol:

    C: \ Program Dosyaları \ MongoDB \ Sunucu \ 3.4 \ bin

  3. Buradan mongod.exe dosyasını çalıştırın ve birinci adımda oluşturduğunuz klasörün yolunu --dbpath bayrağını kullanarak aşağıdaki gibi iletin:

    mongod.exe --dbpath "C: \ mongo-data"

Lütfen Dikkat : Windows'taysanız, düzgün çalışması için yukarıdaki çift tırnak ("") kullanmanız gerekir.

Bu şekilde aşağıdaki gibi bir şey elde edeceksiniz:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

Pencerelerde tek tırnak ('') kullanırsanız, şunları elde edersiniz:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Sorunun çözülmesine yardımcı olacağını umuyoruz.


1

Mongo DB demon'u mongodkomutla çalıştırmak için bir veritabanı dizininiz olmalıdır, muhtemelen çalıştırmanız gerekir:

mkdir C:\data\db

Ayrıca, MongoDB'nin bu dizin için bir yazma iznine sahip olması veya süper kullanıcı izinleriyle çalıştırılması gerekir sudo mongod.


1

Mongodb'yi başlatmaya çalıştığımda (mac os'da) aşağıdaki hatayı almaya devam ettim.

"shutting down with code:100"

Şu komutu kullanıyordum:

./mongod --dbpath=~/mongo-data

Benim için düzeltme, "=" işaretine ihtiyacım olmamasıydı ve bu hataya neden oluyordu. Ben de yaptım

./mongod --dbpath ~/mongo-data

Bunu oraya atmak istedim çünkü hata hiçbir şekilde sorunun bu olduğunu belirtmiyor. Bunun yardımcı olup olmadığını görmek için neredeyse ~ / mongo-data dizininin içeriğini kaldırdım. İyi ki, cli arg'lerin bazen "=" işaretini kullanmadığını hatırladım.


1

ilk önce MongoDB'nin verileri depoladığı bir veri dizini oluşturmanız gerekir. MongoDB'nin varsayılan veri dizini yolu, MongoDB'yi başlattığınız sürücüdeki mutlak yol \ data \ db'dir.

C: / sürücüsüne kurduysanız data \ db dizini oluşturmanız gerekir. bu çalıştırma komutunu cmd'de yapmak için

C:\>mkdir data\db

MongoDB'yi başlatmak için mongod.exe'yi çalıştırın.

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

--Dbpath seçeneği veritabanı dizininizi işaret eder. görüntü açıklamasını buraya girin

MongoDB'ye bağlanın.

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

tüm işleri iyi kontrol etmek için:

show dbs

görüntü açıklamasını buraya girin


1

1. Hata gösteriyorsa (100 koduyla kapatma) bu, dosyanın istenen konumunu bulamadığı anlamına gelir.

1.a macOS Catalina'dan önceyse, sudo mkdir -p / data / db ile dizin oluşturun ve onu kullanmak için izin verin
sudo chown -Rid -un / data / db .

1.b eğer macOS Catalina'dan sonra sudo mkdir -p / System / Volumes / data / db yapın ve ona sudo chown -R id -un/ System / Volumes / data / db izinlerini verin .

2. mongo db brew hizmetlerini başlatmak mongodb topluluğu çalıştırmak

3. Mongod veya mongod yazın --dbpath / System / Volumes / Data / data / db

Ve eğer mongod hata gösterirse (kod 48 ile kapatılırsa) bu
, bağlantı noktasının zaten kullanıldığı anlamına gelir, böylece iki şey yapabilirsiniz

4.a Ya
mongod --dbpath / System / Volumes / Data / data / db —port 27018 port numarasını belirterek mongod portunu değiştirirsiniz.

4.b Veya sudo lsof -i: 27017 ile işlemi bularak bu bağlantı noktasındaki işlemi öldürebilir ve ardından komutla öldürebilirsiniz.
kill -9 öldürebilirsiniz.

5. 2. ve 3. adımları tekrarlayın.


1

MacOS kullanıcıları için aşağıdaki sorunla ilgilenin:

MongoDB Community'yi macOS'a .tgz Tarball kullanarak yüklüyorsanız

(( MacOS 10.15 Catalina'dan itibaren Apple, MongoDB varsayılan / data / db veri dizinine erişimi kısıtlar. MacOS 10.15 Catalina'da, / usr / local / var / mongodb gibi farklı bir veri dizini kullanmanız gerekir. ))

aşağıdaki gibi çözebilirsiniz:

(MacOS Catalina'dan itibaren)

Apple, güvenlik amacıyla Catalina'da yeni bir Birim oluşturdu. Catalina üzerindeyseniz, System / Volumes / Data'da / data / db klasörünü oluşturmanız gerekir.

Bu komutu kullanın:

sudo mkdir -p /System/Volumes/Data/data/db

Ardından, izin vermek için bu komutu kullanın:

sudo chown -R `id -un` /System/Volumes/Data/data/db

bu normalin yerini alacak

sudo mkdir -p /data/db

Aşağıdaki komutu çalıştırarak / data / db dizininin doğru izinlere sahip olduğundan emin olun:

sudo chown -R `id -un` /data/db

mongoDB'yi bitirip başlattıktan sonra terminalde aşağıdakileri kullanabilirsiniz:

sudo mongod --dbpath /System/Volumes/Data/data/db

0

In MacOS : -

Mongo sunucusunu çalıştırırken önceden oluşturulmuş veritabanının yolunu vermeyi unuttuysanız yukarıdaki hata görünecektir.

sudo ./mongod --dbpath ../../mongo-data/

Referans

Not: - ./mongod && ../../mongo-data göreceli yoldur. Böylece ortam değişkeninde yapılandırarak bundan kaçınabilirsiniz.

Referans


0

Pencereler için için aynı sorunu yaşıyorum.

Düzeltme şuydu - yönetici olarak komut satırını çalıştırmam gerekiyor.


1
Yanıtı şu şekilde yeniden ifade etmenizi öneririm: "Windows altında bu sorunu yaşıyorsanız, komut satırını yönetici olarak çalıştırdığınızdan emin olun".
Filnor

0

Zaten dizine sahipseniz, dir izinlerini kontrol edin veya mongo'yu sudo ile yeniden başlatmayı deneyin. sudo brew hizmetleri mongodb'yi başlat


0

Benim durumumda, benzer bir hata aldım ve bu oluyordu çünkü kök kullanıcıyla mongod çalıştırmıştım ve bu sadece kök tarafından erişilebilen bir günlük dosyası oluşturmuştu. Bunu, sahipliği kökten normalde çalıştırdığınız kullanıcıya değiştirerek düzeltebilirim. Günlük dosyası / var / lib / mongodb / journal / dizinindeydi.


0

Virtualbox kullanıyorsunuz VM'nizi kontrol edin.

docker-machine ssh

df -h

Eğer boş alanınız yoksa dev / sda1'e bakın, bunun nedeni çok sayıda görüntü veya kapsayıcı olabilir. "docker rm" ve "docker rmi" kullanarak bunları kaldırabilirsiniz


0

Bu çıkış kodu, MongoDB sürümlerini değiştiriyorsanız ve veri dizini, sürüm düşürme gibi uyumsuzsa da verilir. Eski dizini başka bir yere taşıyın ve yeni bir dizin oluşturun (diğer cevaplarda verilen talimatlara göre).


0

Aravind.

Benim de başıma geldi çünkü Görev Yöneticisi tarafından MongoDB'yi durdurdum.

Yaratmak \ Data \ db: C klasörü ve en MongoDB başlayan C: \ Program Files \ MongoDB \ 3.4 \ bin \ mongod.exe \ Sunucu cespon önerildiği gibi, benim için çalıştı, ama MongoDB benim Veritabanları herhangi göstermedi önceden oluşturulmuş.

Ardından, C: \ data \ db klasörünü kaldırıp MongoDB yükleyicisiyle kurulumu onararak verilerimi kurtardım ve normal olarak MongoDB'yi başlattım.

(MongoDB konusunda çok yeniyim, ancak bu sorunu çözmeme yardımcı oldu ve önizleme verilerini kurtarabilir).


0

yazılan mongod ve hata alma

Hatalar:

initAndListen'deki istisna: NonExistentPath: Veri dizini / data / db bulunamadı., sonlandırılıyor

Code 100 ile kapanıyor

Sonra deneyin (tüm izinlerle veri ve db klasörü oluşturun)

mongod --dbpath = / veri

yeni sekme kullanın ve mongo yazın.

> dbs kullan

Hala probla karşı karşıyaysanız, mac catalina'yı kontrol edebilirsiniz: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

Windows için: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

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.