kesalahan dalam menginstal mongo di mesin virtual

40

Saya mencoba menginstal mongo menggunakan dokumentasi mongo: Instal MongoDB di Ubuntu tidak ada kesalahan yang disebutkan selama instalasi. Tetapi ketika saya menjalankan mongoperintah, kesalahan berikut ditampilkan di terminal.

Inisialisasi global gagal: BadValue Tidak valid atau tidak ada set lokal pengguna. Harap pastikan variabel lingkungan LANG dan / atau LC_ * diatur dengan benar

Gayan Charith
sumber

Jawaban:

89

Sepertinya localepengaturan Anda rusak atau tidak ada pada VM itu, atau setidaknya sesi pada VM itu. Salah satu dependensi MongoDB ( boost ) akan gagal ketika lokal tidak diatur dengan benar (lihat SERVER-9032 ). Sebagai referensi, sebelum perubahan SERVER-9032 masalah ini masih terjadi tetapi tampak seperti ini .

Kadang-kadang logout dan kembali dapat memperbaikinya (hanya rusak untuk sesi saat ini), atau Anda dapat mencoba berlari sudo locale-genuntuk memastikan generasi berhasil.

Sementara itu, sebagai solusi untuk menjalankan mongo(atau mongoddll.), Cukup setel LC_ALLvariabel Anda secara manual sebelum memulai program:

export LC_ALL=C
mongo 
Adam C
sumber
Apakah kita seharusnya mengkonfigurasi lokal ketika membuat VM baru?
Alex
1
Bergantung pada bagaimana Anda menginstal OS Anda - sebagian besar pengaturan aliran / UI akan mengurus ini untuk Anda dengan menanyakan di mana Anda berada dan bahasa apa yang Anda gunakan - jika Anda bersekolah lama Anda harus berpotensi melakukan ini sendiri, tetapi Saya cukup yakin saya belum melihat layar pemilihan lokal selama bertahun-tahun. Pada dasarnya, tidak masuk akal untuk mengharapkan ini dilakukan untuk Anda dan Anda hanya harus mendengarnya ketika itu kacau.
Adam C
Terima kasih, itu adalah CentOS Vm jadi saya pikir saya perlu tugas Ansible untuk itu!
Alex
15

Saya juga mencoba menginstal MongoDB di Ubuntu 12.04 dan mendapat kesalahan yang sama pada mesin virtual (XEN). Bagi saya, memodifikasi /etc/default/localemelakukan trik. Saya membuatnya bekerja dengan pengaturan ini:

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

Atau, konfigurasi kerja lainnya adalah (perhatikan tanda kutip dan: en):

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

Solusi Adam Cexport juga membantu dan mungkin merupakan jawaban yang lebih rumit.

LeBird
sumber
4

Meskipun jawaban lain yang diberikan di sini menyelesaikan masalah dengan benar, pertanyaan Stackoverflow berikut membawa saya ke masalah sebenarnya ketika MongoDB diinstal di Vagrant VM dan mendapatkan kesalahan di atas:

Masalah ini muncul karena mesin host menempatkan lokal ke tamu melalui ssh.

Jadi jawaban yang menyarankan untuk mengesampingkan lokal host di dalam Vagrantfile memecahkannya secara permanen hanya dengan sebuah baris:

Vagrant.configure(2) do |config|

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

    # ...

end

Perhatikan juga komentar tentang hal itu yang tidak mengubah nilai LC_ALL aktual pada host.

conceptdeluxe
sumber
1

Berdasarkan https://askubuntu.com/a/227513/59618 ini, Anda dapat:

$ 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.
psychok7
sumber
tidak bekerja untuk saya
Iman Mohamadi