MongoDB'nin verilerini depolamak için kullandığı konum nasıl değiştirilir?


13

Verilerini depolamak için MongoDB yapılandırma dosyasını düzenledim /home/user/data/mongod.

Ancak, sözde yeni klasöre izinler verilmediği için veriler eski dizine hala yazılmıştır - MongoDB'ye bu dizin için gerekli izinleri nasıl verebilirim?


1
Yapılandırmanızı nasıl düzenlediniz? Neden izinlerle ilgili bir sorun olduğunu düşünüyorsunuz? Neden Mongo'nun hata atmak yerine varsayılan dizini kullandığını düşünüyorsunuz? (Bu sormanın bir yolu: hatalar günlük dosyasını kontrol ettiniz mi?)
Andrea Corbellini

Yanıtlar:


29

MongoDB tarafından verilerini depolamak için kullanılan konumu değiştirmek için şunları yapmanız gerekir:

  1. Düzen /etc/mongodb.confve çizgiyi değiştirmek dbpath=/var/lib/mongodbistediğiniz o yola, örneğindbpath=/home/user/data/mongodb
  2. mongodbKullanıcının yazmasına izin vermek için seçtiğiniz yolun izinlerini güncelleyin , ör.chown $USER -R /home/user/data/mongodb
  3. MongoDB hizmetini çalıştırarak yeniden başlatın. sudo service mongodb restart

Eski konumda saklamak istediğiniz herhangi bir veri varsa, önce MongoDB hizmetini durdurmanız, dosyaları el ile taşımanız ve hizmeti yeniden başlatmanız gerektiğini unutmayın.

MongoDB sunucusunu durdurmak için sudo service mongodb stop


hangi dosyaları taşımam gerekiyor?
chovy

@chovy Depolama dizinindeki dosyalar.
David Edwards

Her şeyi sildim/var/lib/mongodb
chovy

@chovy Sonra varsa tüm verilerinizi sildiniz ve taşıyabileceğiniz hiçbir dosya yok.
David Edwards

Evet bu iyi. Onu kurtarmam gerekmiyordu. orada gerekli veri olmayan dosyalar olup olmadığından emin değildi. Görünüşe göre değil çünkü hala çalışıyor gibi görünüyor
chovy

1

Değişikliklerin etkili olması için arka plan programını yeniden başlatmanız gerekir.

sudo service mongodb restart

Ti size çok yol vermek deamon yeniden başlatın. Eski yol: "etc / init.d / mongodb restart", yeni yol: "sudo service mongodb restart"
Cyril ALFARO

1
Cevabınızı bu bilgileri içerecek şekilde düzenlemenizi öneririz.
Eliah Kagan

1

Komut satırından MongoDB başlatırsanız kullanabilirsiniz --dbpathargüman: mkdir mydata && mongod --dbpath mydata Daha bu konuda, "dosya var" falan, bu mongodb iyi bilinen bir sınırlamadır ile ilgili bazı sorunu çalıştırmak olabilir burada . Sadece disk sürücüsünü değiştirin ve şimdi tekrar bu sorunla karşılaşıp karşılaşmadığınızı test edin.


1

Bugün aynı sorunla karşılaştım ve aşağıdaki adımları izleyerek sorunu çözdüm.

  1. Mongod.conf dosyasını düzenleyin ve dbPath değişken değerini düzenleyin.

    sudo -H gedit /etc/mongod.conf
    
  2. Sonra mongod servisini başlatmak için aşağıdaki komutu kullanın

    sudo mongod --dbpath "your db path"
    

    Yukarıdaki komutu olmadan çalıştırmayı denedim sudove bir hata aldım. Bu yüzden sudokomutu çalıştırmak için kullanın.


0

/ var / lib / mongodb (verileri kaydettiğiniz dizin) / path ve chown mondodb: mongodb / path (verileri kaydetmek istediğiniz dizin)

/etc/mongod.conf dosyasını düzenleyin

hizmet mongod yeniden başlatma (bağlanamazsa, mongod.lock içermiyorsa / yolunu kontrol edin, varsa silin ve yeniden başlatın)


onun mongodb: sanırım mongodb .. !!
Lakshman Pilaka
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.