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.
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 ...