103

コンピューター A (ubuntu 12.04 サーバー) で mongodump を使用してダンプを作成しました。それをコンピューター B (ubuntu 12.04 サーバー) に移動し、次のように入力しました。

mongorestore -db db_name --drop db_dump_path

失敗し、次のように報告されました。

接続先: 127.0.0.1
終了 'std::runtime_error' のインスタンスをスローした後に呼び出されました
what(): locale::facet::_S_create_c_locale name not valid
中止

以前にこの操作を成功させたことがありますが、この奇妙な動作は一度も発生していません。これを修正するにはどうすればよいですか?

4

6 に答える 6

258

私のディストリビューションでは「locale-gen」がインストールされていなかったので、LC_ALL 環境変数を設定するだけで済みました。したがって、次のコマンドで修正されました。

export LC_ALL="en_US.UTF-8"

うまくいけば、それは他の誰かを助けるでしょう...

于 2013-11-11T11:25:30.347 に答える
52

実際、MongoDB とは厳密には関係ありません。どういうわけか、コンピューター B の言語が正しく定義されていませんでした。次のように入力して、なんとか修正できました。

sudo locale-gen en_US en_US.UTF-8
sudo locale-gen it_IT it_IT.UTF-8
sudo locale-gen xx_xx xx_XX.UTF-8 ...
sudo dpkg-reconfigure ロケール

これらのコマンドは、必要なロケールを生成して構成します。これらの手順の後、mongorestore は通常どおり動作するようになりました。

于 2013-10-01T10:51:14.670 に答える
17

エクスポートは、ロケールがインストールされLC_ALL="en_US.UTF-8"ている場合にのみ機能します。パッケージ (または Debian 派生物以外のディストリビューション上の同等のもの)en_USのインストールを避けたい場合は、代わりに以下を使用できます。locales

export LC_ALL=C.UTF-8

追加のロケール データは必要ありません。

于 2016-01-27T13:26:33.693 に答える
10

修正を永続的にするには、これらのファイルのいずれかを編集できます。

  • sudo vim /etc/default/locale
  • sudo vim /etc/環境

そして、行を追加しますLC_ALL="en_US.UTF-8"

于 2015-09-24T13:12:45.860 に答える