가상 머신에 mongo 설치 오류


40

mongo 문서를 사용하여 mongo를 설치하려고합니다 . Ubuntu에 MongoDB 설치 설치 중에 오류가 언급되지 않았습니다. 그러나 mongo명령을 실행 하면 터미널에 다음 오류가 표시되었습니다.

글로벌 초기화 실패 : BadValue가 유효하지 않거나 사용자 로케일이 설정되지 않았습니다. LANG 및 / 또는 LC_ * 환경 변수가 올바르게 설정되어 있는지 확인하십시오

답변:


89

당신과 같은 locale설정이 파손 또는 VM에 존재하지 않는, 또는 VM에 적어도 해당 세션된다. 로케일이 올바르게 설정되지 않으면 MongoDB의 종속성 중 하나 ( boost )가 실패합니다 ( SERVER-9032 참조 ). 참고로 SERVER-9032를 변경하기 전에이 문제는 여전히 발생했지만 다음 과 같습니다 .

때때로 로그 아웃했다가 다시 로그인하여 문제를 해결하거나 (현재 세션에서만 손상됨) sudo locale-gen생성을 성공적으로 수행 하기 위해 실행할 수 있습니다 .

그 사이에 mongo(또는 mongod등) 실행 을위한 해결 방법 LC_ALL으로 프로그램을 시작하기 전에 변수를 수동으로 설정하십시오 .

export LC_ALL=C
mongo 

새 VM을 만들 때 로캘을 구성해야합니까?
Alex

1
OS 설치 방법에 따라-대부분의 설정 흐름 / UI는 현재 위치와 사용하는 언어를 물어 봄으로써이를 처리 할 것입니다. 몇 년 동안 로케일 선택 화면을 보지 못했다고 확신합니다. 기본적으로, 이것이 당신을 위해 이루어질 것으로 기대하는 것은 부당하지 않으며 어떤 식 으로든 조여 질 때만 들어야합니다.
Adam C

감사합니다. CentOS Vm이므로 Ansible 작업이 필요하다고 생각합니다!
Alex

15

또한 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 도 도움이되었으며 아마도 더 정교한 답변 일 것입니다.


4

여기에 제공된 다른 답변으로 문제를 올바르게 해결할 수 있지만 다음 Stackoverflow 질문을 통해 MongoDB를 Vagrant VM에 설치하고 위의 오류가 발생할 때 실제 문제가 무엇인지 알 수 있습니다.

이 문제는 호스트 시스템이 ssh를 통해 로케일을 게스트에 배치하기 때문에 나타납니다.

따라서 Vagrantfile 내에서 호스트 로케일을 재정의 제안 그냥 라인 영구적으로 해결 :

Vagrant.configure(2) do |config|

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

    # ...

end

또한 호스트의 실제 LC_ALL 값을 수정 하지 않는다는 의견에 유의하십시오 .


1

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.

나를 위해 일하지 않았다
Iman Mohamadi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.