在虚拟机中安装mongo时出错

我尝试使用mongo文档安装mongo: 在Ubuntu上安装MongoDB,在安装过程中没有提到任何错误。 但是当我运行mongo命令后,终端中显示错误。

全局初始化失败:BadValue无效或无用户区域设置。 请确保正确设置LANG和/或LC_ *环境变量

看起来您的locale设置在该VM上已损坏或不存在,或者至少在该VM上的该会话中。 当未正确设置语言环境时,MongoDB的一个依赖项( boost )将失败(请参阅SERVER-9032 )。 作为参考,在SERVER-9032发生变化之前,这个问题仍然存在,但看起来像这样 。

有时退出并重新登录可以修复它(仅针对当前会话中断),或者您可以尝试运行sudo locale-gen以确保生成成功。

与此同时,作为让mongo (或mongod等)运行的解决方法,只需在启动程序之前手动设置LC_ALL变量:

 export LC_ALL=C mongo 

我也尝试在Ubuntu 12.04上安装MongoDB,并在虚拟机(XEN)上遇到同样的错误。 对我来说,修改/etc/default/locale就可以了。 我得到了这些设置:

 LANG=en_US.UTF-8 LANGUAGE=en_US LC_ALL=en_US.UTF-8 

或者,另一个工作配置将是(注意引号和:en):

 LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8" 

Adam C对export的解决方案也有所帮助,可能是更精细的答案。

虽然这里提供的其他答案正确解决了问题,但以下Stackoverflow 问题让我了解了在Vagrant VM中安装MongoDB并获得上述错误时的实际问题:

出现此问题是因为主机通过ssh将语言环境放入guest虚拟机。

因此,建议覆盖Vagrantfile中的主机语言环境的答案只需一行即可永久解决它:

 Vagrant.configure(2) do |config| ENV['LC_ALL']="en_US.UTF-8" # ... end 

另请注意有关它的注释,它不会修改主机上的实际LC_ALL值。

基于此https://askubuntu.com/a/227513/59618您可以:

 $ sudo locale-gen "en_US.UTF-8" Generating locales... en_US.UTF-8... done Generation complete. $ sudo dpkg-reconfigure locales Generating locales... en_US.UTF-8... up-to-date Generation complete.