Saya membuat dump dengan mongodump di komputer A (server ubuntu 12.04). Saya memindahkannya ke komputer B (server ubuntu 12.04) dan mengetik:
mongorestore -db db_name --drop db_dump_path
Itu gagal dan dilaporkan:
terhubung ke: 127.0.0.1
terminate dipanggil setelah melempar turunan dari 'std :: runtime_error'
what (): locale :: facet :: _ S_create_c_locale name not valid
Dibatalkan
Saya telah berhasil menyelesaikan operasi ini sebelumnya dan perilaku aneh ini tidak pernah terjadi. Apa yang harus saya lakukan untuk memperbaikinya?
mongodb
locale
ubuntu-12.04
mongodump
mongorestore
Luca Anceschi
sumber
sumber
Sebenarnya itu tidak terkait erat dengan MongoDB. Entah bagaimana bahasa di komputer B tidak didefinisikan dengan benar. Saya berhasil memperbaikinya dengan mengetik:
Perintah ini akan menghasilkan dan mengkonfigurasi lokal yang dibutuhkan. Setelah langkah-langkah tersebut, mongorestore kembali bekerja seperti biasa.
sumber
/etc/locale.gen
dan mengaktifkan lokal yang diperlukan (di arch linux)/etc/locale.gen
dan menjalankanlocale-gen
adalah semua yang diperlukan.Mengekspor
LC_ALL="en_US.UTF-8"
hanya berfungsi jika Andaen_US
menginstal lokal. Jika Anda ingin menghindari menginstallocales
paket (atau yang setara pada distribusi selain turunan Debian), Anda dapat menggunakan:yang tidak memerlukan data lokal tambahan.
sumber
Jika Anda menggunakan Mac OSX dan SSH, ini mungkin dikeluarkan oleh LC_CTYPE yang salah.
Hapus var yang salah.
Periksa apakah lokal berfungsi dengan baik.
Sekarang mongo juga harus melakukannya dengan baik.
sumber
Untuk membuat perbaikan permanen, Anda dapat mengedit salah satu file tersebut:
Dan tambahkan garis
LC_ALL="en_US.UTF-8"
sumber
Punya masalah yang sama pada debian 7 tanpa locale-gen (perintah tidak ditemukan) diinstal.
Saya menyelesaikannya dengan cara ini:
Sekarang mongodb harus dimulai.
Sumber
sumber