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

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 

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.


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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.