ข้อผิดพลาดในการติดตั้ง mongo ในเครื่องเสมือน


40

ฉันพยายามติดตั้ง mongo โดยใช้เอกสารประกอบ mongo: ติดตั้ง MongoDB บน ​​Ubuntu โดยไม่มีข้อผิดพลาดระหว่างการติดตั้ง แต่เมื่อฉันเรียกใช้mongoคำสั่งต่อไปข้อผิดพลาดก็ปรากฏขึ้นในสถานี

การเริ่มต้นส่วนกลางล้มเหลว: BadValue ไม่ถูกต้องหรือไม่มีชุดภาษาของผู้ใช้ โปรดตรวจสอบให้แน่ใจว่าได้ตั้งค่าตัวแปรสภาพแวดล้อม LANG และ / หรือ LC_ * อย่างถูกต้อง

คำตอบ:


89

ดูเหมือนว่าlocaleการตั้งค่าของคุณจะใช้งานไม่ได้หรือไม่มีอยู่ใน VM นั้นหรืออย่างน้อยเซสชันนั้นบน VM นั้น หนึ่งในการพึ่งพา ( เพิ่ม ) ของ MongoDB จะล้มเหลวเมื่อตั้งค่าภาษาไม่ถูกต้อง (ดูที่SERVER-9032 ) สำหรับการอ้างอิงก่อนการเปลี่ยนแปลงในเซิร์ฟเวอร์ 9032 ปัญหานี้ยังคงเกิดขึ้น แต่มองเช่นนี้

บางครั้งการออกจากระบบและกลับมาสามารถแก้ไขได้ (ใช้งานไม่ได้สำหรับเซสชันปัจจุบันเท่านั้น) หรือคุณสามารถลองใช้sudo locale-genเพื่อให้แน่ใจว่าการสร้างเสร็จสมบูรณ์

ในระหว่างนี้เพื่อเป็นการหลีกเลี่ยงการเรียกใช้mongo(หรือmongodอื่น ๆ ) เพียงแค่ตั้งค่าLC_ALLตัวแปรของคุณด้วยตนเองก่อนเริ่มโปรแกรม:

export LC_ALL=C
mongo 

เราควรจะกำหนดค่าโลแคลเมื่อสร้าง VM ใหม่หรือไม่
อเล็กซ์

1
ขึ้นอยู่กับว่าคุณติดตั้งระบบปฏิบัติการของคุณอย่างไร - กระบวนการติดตั้ง / UIs ส่วนใหญ่จะดูแลสิ่งนี้ให้คุณโดยถามว่าคุณอยู่ที่ไหนและใช้ภาษาใด - ถ้าคุณไปโรงเรียนเก่าคุณต้องทำด้วยตัวเอง แต่ ฉันค่อนข้างแน่ใจว่าฉันไม่ได้เห็นหน้าจอการเลือกสถานที่เป็นเวลาหลายปี โดยทั่วไปมันไม่สมเหตุสมผลที่จะคาดหวังว่าสิ่งนี้จะเกิดขึ้นกับคุณและคุณควรจะได้ยินเกี่ยวกับมันเมื่อมันถูกทำให้งง
Adam C

ขอบคุณมันเป็น CentOS Vm ดังนั้นฉันคิดว่าฉันต้องการงาน Ansible!
อเล็กซ์

15

ฉันยังลองติดตั้ง MongoDB บน ​​Ubuntu 12.04 และได้รับข้อผิดพลาดเดียวกันในเครื่องเสมือน (XEN) สำหรับฉัน modifiying /etc/default/localeทำเคล็ดลับ ฉันได้มันทำงานกับการตั้งค่าเหล่านี้:

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

หรือการกำหนดค่าการทำงานอื่นจะเป็น (ใจคำพูดและ: en):

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

การแก้ปัญหาของอดัมซีด้วยความexportช่วยเหลือและอาจเป็นคำตอบที่ซับซ้อนกว่านี้


4

แม้ว่าคำตอบอื่น ๆ ที่ให้ไว้ที่นี่แก้ปัญหาได้อย่างถูกต้องคำถาม Stackoverflow ต่อไปนี้นำฉันไปสู่สิ่งที่ปัญหาจริงคือเมื่อมีการติดตั้ง MongoDB ใน Vagrant VM และได้รับข้อผิดพลาดดังกล่าวข้างต้น:

ปัญหานี้จะปรากฏขึ้นเพราะเครื่องโฮสต์ใส่สถานที่ให้กับแขกผ่านทาง ssh

ดังนั้นคำตอบที่แนะนำให้แทนที่โฮสต์โลแคลภายใน Vagrantfile จะแก้ปัญหาอย่างถาวรด้วยเพียงแค่บรรทัด:

Vagrant.configure(2) do |config|

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

    # ...

end

นอกจากนี้โปรดทราบความคิดเห็นเกี่ยวกับว่าจะไม่แก้ไขค่า LC_ALL จริงบนโฮสต์


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.