Я создал дамп с помощью mongodump на компьютере A (сервер ubuntu 12.04). Я переместил его на компьютер B (сервер ubuntu 12.04) и набрал:
mongorestore -db имя_бд --drop db_dump_path
Это не удалось, и он сообщил:
connected to: 127.0.0.1
terminate, вызываемый после выброса экземпляра 'std :: runtime_error'
what (): locale :: facet :: _ S_create_c_locale name not valid
Aborted
Я успешно выполнял эту операцию раньше, и такого странного поведения никогда не было. Что мне нужно сделать, чтобы это исправить?
mongodb
locale
ubuntu-12.04
mongodump
mongorestore
Лука Анчески
источник
источник
На самом деле это не связано строго с MongoDB. Как-то язык на компьютере B определился неправильно. Мне удалось это исправить, набрав:
Эти команды сгенерируют и настроят необходимые языковые стандарты. После этих шагов mongorestore вернулся к работе в обычном режиме.
источник
/etc/locale.gen
и включить необходимые локали (в Arch Linux)/etc/locale.gen
и запуститьlocale-gen
.Экспорт
LC_ALL="en_US.UTF-8"
работает, только если у вас установленen_US
языковой стандарт. Если вы хотите избежать установкиlocales
пакета (или его эквивалента в дистрибутивах, отличных от производных от Debian), вы можете вместо этого использовать:что не потребует дополнительных данных о локали.
источник
Если вы используете Mac OSX и SSH, это может быть вызвано неправильным LC_CTYPE.
Отключите неправильную переменную.
Проверьте, нормально ли работает локаль.
Теперь у монго тоже все должно быть хорошо.
источник
Чтобы сделать исправление постоянным, вы можете отредактировать один из этих файлов:
И добавляем строку
LC_ALL="en_US.UTF-8"
источник
Возникла такая же проблема на debian 7 без установленного locale-gen (команда не найдена).
Я решил так:
Теперь должен запуститься mongodb.
Источник
источник