J'ai créé un dump avec mongodump sur l'ordinateur A (serveur ubuntu 12.04). Je l'ai déplacé sur l'ordinateur B (serveur ubuntu 12.04) et j'ai tapé:
mongorestore -db nom_base --drop db_dump_path
Il a échoué et il a signalé:
connecté à: 127.0.0.1
terminate appelé après avoir lancé une instance de 'std :: runtime_error'
what (): locale :: facet :: _ S_create_c_locale nom non valide
Abandonné
J'ai déjà accompli cette opération avec succès et ce comportement étrange ne s'est jamais produit. Que dois-je faire pour résoudre ce problème?
la source
En fait, ce n'est pas strictement lié à MongoDB. D'une manière ou d'une autre, la langue de l'ordinateur B n'a pas été définie correctement. J'ai réussi à le réparer en tapant:
Ces commandes généreront et configureront les paramètres régionaux nécessaires. Après ces étapes, Mongorestore a recommencé à travailler comme d'habitude.
la source
/etc/locale.gen
et activer les paramètres régionaux nécessaires (sur arch linux)/etc/locale.gen
et l'exécutionlocale-gen
étaient tout ce qui était nécessaire.L'exportation
LC_ALL="en_US.UTF-8"
ne fonctionne que si lesen_US
paramètres régionaux sont installés. Si vous souhaitez éviter d'installer lelocales
paquet (ou son équivalent sur des distributions autres que les dérivés Debian), vous pouvez utiliser à la place:qui ne nécessitera aucune donnée locale supplémentaire.
la source
Si vous utilisez un Mac OSX et SSH, cela peut être émis par un LC_CTYPE incorrect.
Désactivez le mauvais var.
Vérifiez si les paramètres régionaux fonctionnent correctement.
Maintenant, mongo devrait aussi bien faire.
la source
Pour rendre le correctif permanent, vous pouvez modifier l'un de ces fichiers:
Et ajoutez la ligne
LC_ALL="en_US.UTF-8"
la source
J'ai eu le même problème sur Debian 7 sans locale-gen (commande introuvable) installée.
J'ai résolu de cette façon:
Maintenant, mongodb devrait démarrer.
La source
la source