sanal makinede mongo yükleme hatası


40

Mongo dokümantasyonunu kullanarak mongo yüklemeye çalışıyorum: MongoDB kurulumunu Ubuntu'ya kurdum , kurulum sırasında hatalardan bahsetmedim. Ancak mongokomut çalıştırdığınızda aşağıdaki hata terminalde görüntülendi.

Genel başlatma başarısız oldu: BadValue Geçersiz veya kullanıcı yerel ayarı ayarlanmadı. Lütfen LANG ve / veya LC_ * ortam değişkenlerinin doğru ayarlandığından emin olun

Yanıtlar:


89

localeAyarlarınız o VM'de bozulmuş veya mevcut değil ya da en azından bu VM'deki o oturuma benziyor . Bir yerel ayar doğru ayarlanmadığında MongoDB'nin bağımlılıklarından biri ( güçlendirme ) başarısız olur (bkz. SERVER-9032 ). Başvuru için, SUNUCU-9032 yılında değişiklikten önce bu sorun hala ne ama baktım böyle .

Bazen oturum açmak ve tekrar oturum açmak düzeltebilir (yalnızca geçerli oturum için bozuk) veya sudo locale-genjenerasyonun başarılı olduğundan emin olmak için koşmayı deneyebilirsiniz .

Bu arada, mongo(veya mongodvb.) Çalışmaya başlamak için bir geçici çözüm olarak LC_ALL, programa başlamadan önce değişkeninizi manuel olarak ayarlayın :

export LC_ALL=C
mongo 

Yeni bir VM oluştururken yerel ayarları yapılandırmamız mı gerekiyor?
Alex

1
İşletim sisteminizin kurulumunu nasıl yaptığınıza bağlı olarak - çoğu kurulum akışı / kullanıcı arayüzü size nerede olduğunuzu ve hangi dili kullandığınızı sorarak bu konuyla ilgilenecek - eski okula giderseniz, bunu kendiniz yapmak zorunda kalacaksınız. Yıllardır yerel seçim ekranı görmediğimden eminim. Temel olarak, bunun sizin için yapılmasını beklemeniz mantıksız değildir ve yalnızca bir şekilde berbat edildiğinde duymanız gerekir.
Adam C

Teşekkürler, bir CentOS Vm idi, bu yüzden bunun için bir Ansible görevine ihtiyacım olduğunu düşünüyorum!
Alex

15

MongoDB’yi Ubuntu 12.04’e yüklemeyi denedim ve aynı hatayı sanal bir makinede (XEN) aldım. Benim için, /etc/default/localedeğişiklik hile yaptı. Bu ayarlarla çalışmasını sağladım:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ALL=en_US.UTF-8

Veya, başka bir çalışma yapılandırması olacaktır (alıntılara dikkat edin: en):

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_ALL="en_US.UTF-8"

Adam C'nin geçici çözümüexport de yardımcı oldu ve muhtemelen daha ayrıntılı bir cevaptı.


4

Burada verilen diğer cevaplar sorunu doğru çözse de, aşağıdaki Stackoverflow sorusu , MongoDB’nin bir Vagrant VM’de kurulu olması ve yukarıdaki hatayı alması durumunda asıl sorunun ne olduğunu bana gösterdi:

Bu sorun, ana makinenin yerel ayarı ssh aracılığıyla konuk durumuna getirmesi nedeniyle görünür.

Böylece, Vagrantfile içindeki ana bilgisayar yerel ayarını geçersiz kılmayı öneren cevap , onu sadece bir çizgi ile kalıcı olarak çözer:

Vagrant.configure(2) do |config|

    ENV['LC_ALL']="en_US.UTF-8"

    # ...

end

Ayrıca bu konuda yorumları dikkat etmez ana bilgisayarda gerçek LC_ALL değerini değiştirin.


1

Buna göre https://askubuntu.com/a/227513/59618 şunları yapabilirsiniz:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

benim için işe yaramadı
Iman Mohamadi
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.