MongoDB mongorestore 실패 : locale :: facet :: _ S_create_c_locale 이름이 유효하지 않습니다.
컴퓨터 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 이름이 유효하지 않음
중단됨
나는 이전에이 작업을 성공적으로 수행했으며이 이상한 동작은 발생하지 않았습니다. 이 문제를 해결하려면 어떻게해야합니까?
내 배포판에서 "locale-gen"이 설치되지 않았고 LC_ALL 환경 변수를 설정하기 만하면됩니다. 그래서 다음 명령으로 수정했습니다.
export LC_ALL="en_US.UTF-8"
다른 사람에게 도움이되기를 바랍니다.
실제로 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는 평소와 같이 작동합니다.
내보내기 LC_ALL="en_US.UTF-8"
는 en_US
로케일이 설치된 경우에만 작동합니다 . locales
패키지 (또는 Debian 파생 제품이 아닌 다른 배포판에 해당하는 패키지)를 설치하지 않으려면 대신 다음을 사용할 수 있습니다.
export LC_ALL=C.UTF-8
추가 로케일 데이터가 필요하지 않습니다.
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=
잘못된 변수를 설정 해제하십시오.
$ 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=
Now mongo also should do fine.
To make the fix permanent you can edit one of those files:
- sudo vim /etc/default/locale
- sudo vim /etc/environment
And add the line LC_ALL="en_US.UTF-8"
Got same problem on debian 7 without locale-gen (command not found) installed.
I solved this way:
su
apt-get install locales
dpkg-reconfigure locales # select locales you want!
Now mongodb should start.
'IT박스' 카테고리의 다른 글
PowerShell 2.0으로 '일시 중지'를 어떻게 수행합니까? (0) | 2020.08.17 |
---|---|
popViewController의 완료 블록 (0) | 2020.08.17 |
공백을 탭으로 변환 (0) | 2020.08.17 |
평균 이동을 사용한 이미지 분할 설명 (0) | 2020.08.17 |
.NET을 사용하여 디렉토리에서 3 개월 이상 된 파일 삭제 (0) | 2020.08.17 |