update unwind mongodb locale ubuntu-12.04 mongodump mongorestore

unwind - mongodb aggregate update



Error MongoDB mongorestore: locale:: facet::_S_create_c_locale nombre no vĂ¡lido (6)

En realidad, no está estrictamente relacionado con MongoDB. De alguna manera, el lenguaje en la computadora B no se definió correctamente. Logré solucionarlo escribiendo:

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

Estos comandos generarán y configurarán las configuraciones regionales necesarias. Después de esos pasos, mongorestore volvió a funcionar como siempre.

Creé un volcado con mongodump en la computadora A (servidor ubuntu 12.04). Lo moví a la computadora B (servidor ubuntu 12.04) y escribí:

mongorestore -db nombre_bd --drop db_dump_path

Falló e informó:

conectado a: 127.0.0.1
finalizar llamada después de lanzar una instancia de ''std :: runtime_error''
what (): locale :: facet :: _ S_create_c_locale nombre no válido
Abortado

He logrado con éxito esta operación antes y este extraño comportamiento nunca ha ocurrido.

Cualquier ayuda apreciada. Gracias.


Exportar LC_ALL="en_US.UTF-8" solo funciona si tiene instalada la configuración regional en_US . Si desea evitar instalar el paquete de locales (o su equivalente en distribuciones que no sean derivadas de Debian), entonces puede usar:

export LC_ALL=C.UTF-8

que no requerirá ningún dato local extra.


Para que la corrección sea permanente, puede editar uno de esos archivos:

  • sudo vim / etc / default / locale
  • sudo vim / etc / environment

Y agrega la línea LC_ALL="en_US.UTF-8"


Si está usando Mac OSX y SSH, esto podría ser emitido por LC_CTYPE incorrecto.

$ 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=

Desarmar la var. Incorrecta

$ unset LC_CTYPE

Compruebe si la configuración regional funciona bien.

$ 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=

Ahora mongo también debería estar bien.


Tengo el mismo problema en debian 7 sin locale-gen (comando no encontrado) instalado.

Lo solucioné de esta manera:

su apt-get install locales dpkg-reconfigure locales # select locales you want!

Ahora mongodb debería comenzar.

Source


En mi distribución "locale-gen" no estaba instalado y resultó que todo lo que tenía que hacer era establecer la variable de entorno LC_ALL. por lo que el siguiente comando lo solucionó:

export LC_ALL="en_US.UTF-8"

con suerte, ayudará a alguien más ...