Utworzyłem zrzut za pomocą mongodump na komputerze A (serwer Ubuntu 12.04). Przeniosłem go na komputer B (serwer ubuntu 12.04) i wpisałem:
mongorestore -db nazwa_db --drop ścieżka_dumpu_db
Nie udało się i zgłosił:
connected to: 127.0.0.1
terminate wywołana po rzuceniu instancji 'std :: runtime_error'
what (): locale :: facet :: _ S_create_c_locale nazwa niepoprawna
Przerwano
Udało mi się już wykonać tę operację i to dziwne zachowanie nigdy nie wystąpiło. Co muszę zrobić, aby to naprawić?
mongodb
locale
ubuntu-12.04
mongodump
mongorestore
Luca Anceschi
źródło
źródło
W rzeczywistości nie jest ściśle powiązany z MongoDB. W jakiś sposób język na komputerze B nie został poprawnie zdefiniowany. Udało mi się to naprawić wpisując:
Te polecenia wygenerują i skonfigurują wymagane ustawienia regionalne. Po tych krokach mongorestore wrócił do normalnej pracy.
źródło
/etc/locale.gen
i włączać potrzebne lokalizacje (na arch linux)/etc/locale.gen
i uruchomićlocale-gen
.Eksportowanie
LC_ALL="en_US.UTF-8"
działa tylko wtedy, gdy maszen_US
zainstalowane ustawienia regionalne. Jeśli chcesz uniknąć instalowanialocales
pakietu (lub jego odpowiednika w dystrybucjach innych niż pochodne Debiana), możesz zamiast tego użyć:które nie będą wymagały żadnych dodatkowych danych lokalnych.
źródło
Jeśli używasz Mac OSX i SSH, może to być spowodowane niewłaściwym LC_CTYPE.
Usuń niewłaściwe var.
Sprawdź, czy lokalizacja działa poprawnie.
Teraz mongo też powinno wystarczyć.
źródło
Aby naprawić błąd, możesz edytować jeden z tych plików:
I dodaj linię
LC_ALL="en_US.UTF-8"
źródło
Mam ten sam problem na Debianie 7 bez zainstalowanego locale-gen (polecenie nie zostało znalezione).
Rozwiązałem w ten sposób:
Teraz mongodb powinien się rozpocząć.
Źródło
źródło