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.