我在计算机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名称无效
中止
我之前成功完成了此操作,这种奇怪的行为从未发生过。我需要做些什么来解决这个问题?
答案 0 :(得分:251)
在我的发行版“locale-gen”上没有安装,事实证明我所要做的就是设置LC_ALL环境变量。 所以以下命令修复了它:
export LC_ALL="en_US.UTF-8"
希望它会帮助别人......
答案 1 :(得分:49)
实际上它并不与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 locales
这些命令将生成并配置所需的语言环境。 在那些步骤之后,mongorestore像往常一样恢复工作。
答案 2 :(得分:15)
导出LC_ALL="en_US.UTF-8"
仅在安装了en_US
语言环境时才有效。如果您想避免安装locales
软件包(或其在Debian衍生产品以外的发行版上的等价物),那么您可以改为使用:
export LC_ALL=C.UTF-8
,不需要任何额外的区域设置数据。
答案 3 :(得分:10)
要使修复永久化,您可以编辑其中一个文件:
添加第RewriteEngine On
RewriteCond %{REMOATE_ADDR} !=123.123.123.123
RewriteCond %{REQUEST_URI} !^/folder [NC]
RewriteRule .* /folder [R=302,L]
行
答案 4 :(得分:9)
在没有安装locale-gen(未找到命令)的debian 7上遇到同样的问题。
我这样解决了:
su
apt-get install locales
dpkg-reconfigure locales # select locales you want!
现在mongodb应该开始。
答案 5 :(得分:9)
如果您使用的是Mac OSX和SSH,则错误的LC_CTYPE可能会发出错误。
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
取消设置错误的var。
$ unset LC_CTYPE
检查区域设置是否正常工作。
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
现在mongo也应该做得很好。