помилка встановлення mongo у віртуальній машині


40

Я намагаюся встановити mongo за допомогою документації mongo: Встановити MongoDB на Ubuntu жодних помилок під час встановлення не було. Але коли я запускаю mongoкоманду, наступна помилка відображається в терміналі.

Помилка глобальної ініціалізації: BadValue Недійсний або не встановлено локальну мову користувача. Переконайтесь, що змінні середовища LANG та / або LC_ * встановлені правильно

Відповіді:


89

Схоже, що ваші localeналаштування порушені або відсутні в цій VM або принаймні сеансі в цій машині. Одна з залежностей MongoDB ( прискорення ) вийде з ладу, якщо локаль не встановлений правильно (див. SERVER-9032 ). Для довідки, перед зміною в SERVER-9032 ця проблема все ж сталася, але виглядала приблизно так .

Іноді вихід із системи та їх повторне вправлення можуть виправити (лише зламано для поточного сеансу), або ви можете спробувати запустити, sudo locale-genщоб переконатися, що генерація пройшла успішно.

Тим часом, як вирішення для запуску mongo(або mongodт.п.) запуску, просто встановіть свою LC_ALLзмінну вручну перед запуском програми:

export LC_ALL=C
mongo 

Чи слід налаштовувати локаль при створенні нового VM?
Олексій

1
Залежить від того, як ви зробите установку ОС - більшість потоків налаштування / інтерфейси будуть дбати про це за вас, запитуючи вас, де ви є і якою мовою ви користуєтесь - якщо ви переходите в стару школу, ви могли б це зробити самостійно, але Я впевнений, що не бачив екран вибору місцевості роками. В принципі, нерозумно сподіватися, що це буде зроблено саме для вас, і ви повинні про це чути лише тоді, коли це якимось чином викручено.
Адам С

Дякую, це був CentOS Vm, тому я думаю, що для цього мені потрібно відповідне завдання!
Алекс

15

Я також спробував встановити MongoDB на Ubuntu 12.04 і отримав таку ж помилку на віртуальній машині (XEN). Для мене модифікація /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 встановлений у VM-програмі Vagrant та отримано вищевказану помилку:

Ця проблема з'являється через те, що хост-машина розмістила локальну адресу гостя через ssh.

Таким чином, відповідь, що пропонує замінити локальний хост у Vagrantfile, вирішує його назавжди лише рядком:

Vagrant.configure(2) do |config|

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

    # ...

end

Також зверніть увагу на коментарі про те, що це не змінює фактичне значення LC_ALL на хості.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.