MongoDB mongorestore विफलता: स्थानीय :: मुखपत्र :: _ S_create_c_locale नाम मान्य नहीं है


102

मैंने कंप्यूटर ए (ubuntu 12.04 सर्वर) पर मोंगोडम्प के साथ एक डंप बनाया। मैंने इसे कंप्यूटर B (ubuntu 12.04 सर्वर) में स्थानांतरित किया और टाइप किया:

mongorestore -db db_name - पृष्ठभूमि db_dump_path

यह विफल रहा और इसने रिपोर्ट किया:

से जुड़ा: 127.0.0.1
'std :: runtime_error' का एक उदाहरण फेंकने के बाद कहा जाता है को समाप्त
क्या (): स्थान :: पहलू :: _ S_create_c_locale नाम मान्य नहीं
गर्भपात

मैंने पहले भी इस ऑपरेशन को सफलतापूर्वक पूरा किया है और यह अजीब व्यवहार कभी नहीं हुआ है। इसे ठीक करने के लिए मुझे क्या करना चाहिए?

जवाबों:


256

मेरे डिस्ट्रो पर "लोकेल-जीन" स्थापित नहीं किया गया था और यह निकला कि मुझे क्या करना है LC_ALL पर्यावरण चर सेट किया गया है। इसलिए निम्नलिखित कमांड ने इसे तय किया:

export LC_ALL="en_US.UTF-8"

उम्मीद है कि यह किसी और की मदद करेगा ...


3
यह एक टर्मिनल सत्र में ठीक काम करता है, लेकिन यदि आप एक स्थायी समाधान की तलाश करते हैं, तो आप stackoverflow.com/a/32762296/82609 की
सेबस्टियन लम्बर

5
धन्यवाद
@ SebastienLorber

हम्म, पढ़ने से पहले यहाँ आया था कि LC_ALL को सेट करने पर दृढ़ता से हतोत्साहित किया जाता है: wiki.debian.org/Locale
dzuremar

लानत है, लेकिन इस LC_ALL सेटिंग ने समस्या को हल किया है और वहां, तुरंत और बिना रूट विशेषाधिकार की आवश्यकता के। कोई बात नहीं, उम्मीद है कि बाद में मुझे परेशान करने वाले अंधेरे कीड़े नहीं होंगे।
डेजुरेमर

52

वास्तव में यह MongoDB से संबंधित नहीं है। किसी तरह कंप्यूटर बी पर भाषा को सही ढंग से परिभाषित नहीं किया गया था। मैं इसे टाइप करके ठीक करने में कामयाब रहा:

sudo locale-gen en_US en_US.UTF-8
sudo locale-gen it_IT it_IT.UTF-8
sudo locale-gen xx_xx xx_XX.UTF-8 ...
sudo ppkg-reconfigure loc

ये कमांड आवश्यक स्थानों को उत्पन्न और कॉन्फ़िगर करेंगे। उन कदमों के बाद मोंगोरस्टोर को हमेशा की तरह काम करना वापस मिल गया।


2
इसने मूल रूप से मेरी मदद की। लेकिन यह भी /etc/locale.genआवश्यक स्थानों को संपादित करने और सक्षम करने के लिए था (मेहराब पर)
मैरियन थेइसेन

इससे मेरे लिए भी समस्या हल हो गई। यह लुबंटू 12.04 x86 पर है।
आमोस शापिरा

1
लेकिन ऐसा क्यों हो रहा है, क्या कोई विशिष्ट कारण है जो स्थानीय भाषाओं पर निर्भर करता है?
बीस्ट

@ मेरियनइसेन मेरे लिए भी अपराधी था, मैं एक नए आर्क पर स्थापित हूं और मुझे रिस्क्यूटाइम चलाने की कोशिश करते समय त्रुटि मिली। फिक्सिंग /etc/locale.genऔर रनिंग locale-genसभी की आवश्यकता थी।
ERB

17

निर्यात LC_ALL="en_US.UTF-8"केवल तभी काम करता है जब आपके पास en_USलोकेल स्थापित हो। यदि आप localesपैकेज (या डेबियन डेरिवेटिव के अलावा वितरण पर इसके समकक्ष) स्थापित करने से बचना चाहते हैं , तो आप इसके बजाय उपयोग कर सकते हैं:

export LC_ALL=C.UTF-8

जिसे किसी भी अतिरिक्त स्थानीय डेटा की आवश्यकता नहीं होगी।


10

यदि आप Mac OSX और SSH का उपयोग कर रहे हैं तो यह गलत LC_CTYPE द्वारा जारी किया जा सकता है।

$ locale 
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

गलत संस्करण को बंद करें।

$ unset LC_CTYPE 

जांचें कि क्या लोकेल ठीक काम कर रहा है।

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

अब मोंगो को भी ठीक करना चाहिए।


एक जादू की तरह काम करता है। बहुत ही देशी और तेज।
होंग ले

@ user1219736 आपने मेरा दिन बचाया: P
KayV

10

फिक्स को स्थायी बनाने के लिए आप उन फ़ाइलों में से एक को संपादित कर सकते हैं:

  • sudo vim / etc / default / locale
  • सुडो विम / आदि / पर्यावरण

और लाइन जोड़ें LC_ALL="en_US.UTF-8"


इसने मेरे लिए काम किया (सेंटो, AWS c4.8xlarge, vivado को ठीक करने में मदद की)
Sergiu

9

लोकेल-जीन (कमांड नहीं मिली) स्थापित किए बिना डेबियन 7 पर समान समस्या मिली।

मैंने इस तरह हल किया:

su
apt-get install locales
dpkg-reconfigure locales # select locales you want!

अब मोंगोडब शुरू होना चाहिए।

स्रोत

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.