虚拟机中安装mongo出错

虚拟机中安装mongo出错

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

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

答案1

看起来你的locale该虚拟机上的设置已损坏或不存在,或者至少该虚拟机上的会话已损坏或不存在。MongoDB 的依赖项之一(促进)将会失败,因为区域设置不正确(请参阅服务器-9032)。作为参考,在 SERVER-9032 更改之前,此问题仍然存在,但看起来像这样

有时注销并重新登录可以解决问题(仅适用于当前会话),或者您可以尝试运行sudo locale-gen以确保生成成功。

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

export LC_ALL=C
mongo 

答案2

我也尝试在 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也有帮助,而且可能是更详尽的答案。

答案3

虽然这里提供的其他答案正确地解决了问题,但以下 Stackoverflow问题让我知道在 Vagrant VM 中安装 MongoDB 时出现上述错误的实际问题是什么:

出现该问题的原因是主机通过 ssh 将区域设置设置给客户机。

就这样回答建议覆盖 Vagrantfile 中的主机区域设置,只需一行即可永久解决此问题:

Vagrant.configure(2) do |config|

    ENV['LC_ALL']="en_US.UTF-8"

    # ...

end

还请注意关于它的评论才不是修改主机上实际的LC_ALL值。

答案4

基于此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.

相关内容