Ich habe einen Dump mit mongodump auf Computer A (Ubuntu 12.04 Server) erstellt. Ich habe es auf Computer B (Ubuntu 12.04 Server) verschoben und Folgendes eingegeben:
mongorestore -db db_name --drop db_dump_path
Es ist fehlgeschlagen und es wurde berichtet:
verbunden mit: 127.0.0.1
terminate wird aufgerufen, nachdem eine Instanz von 'std :: runtime_error' ausgelöst wurde
what (): locale :: facet :: _ S_create_c_locale name ungültig
Abgebrochen
Ich habe diese Operation bereits erfolgreich durchgeführt und dieses seltsame Verhalten ist noch nie aufgetreten. Was muss ich tun, um dies zu beheben?
quelle
Eigentlich ist es nicht eng mit MongoDB verbunden. Irgendwie war die Sprache auf Computer B nicht richtig definiert. Ich habe es geschafft, indem ich Folgendes eingegeben habe:
Diese Befehle generieren und konfigurieren die erforderlichen Gebietsschemas. Nach diesen Schritten arbeitete mongorestore wieder wie gewohnt.
quelle
/etc/locale.gen
die benötigten Locales bearbeiten und aktivieren (unter Arch Linux)/etc/locale.gen
und Ausführenlocale-gen
war alles, was erforderlich war.Der Export
LC_ALL="en_US.UTF-8"
funktioniert nur, wenn Sie dasen_US
Gebietsschema installiert haben. Wenn Sie vermeiden möchten, daslocales
Paket (oder dessen Äquivalent auf anderen Distributionen als Debian-Derivaten) zu installieren , können Sie stattdessen Folgendes verwenden:Hierfür sind keine zusätzlichen Gebietsschemadaten erforderlich.
quelle
Wenn Sie Mac OSX und SSH verwenden, wird dies möglicherweise durch falsches LC_CTYPE ausgegeben.
Deaktivieren Sie die falsche Var.
Überprüfen Sie, ob das Gebietsschema ordnungsgemäß funktioniert.
Jetzt sollte Mongo auch gut tun.
quelle
Um das Update dauerhaft zu machen, können Sie eine dieser Dateien bearbeiten:
Und füge die Zeile hinzu
LC_ALL="en_US.UTF-8"
quelle
Habe das gleiche Problem auf Debian 7 ohne locale-gen (Befehl nicht gefunden) installiert.
Ich habe es so gelöst:
Jetzt sollte Mongodb beginnen.
Quelle
quelle