Suporte ao Mongo Client RedHat EL5 UT8

3
# mongo
MongoDB shell version: 1.6.4
Fri Mar 16 11:55:46 *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
connecting to: test

O Mongo Server parece lidar bem com os caracteres utf8, bem como com o meu driver php-mongo-client.

Mas quando tento consultar um registro que tem um caractere utf8 do cliente da linha de comando mongo, obtenho:

> db.Users.find({age:33});
error:non ascii character detected
Fri Mar 16 11:55:43 mongo got signal 11 (Segmentation fault), stack trace: 

Fri Mar 16 11:55:43 0x440b50 0x3664c302d0 0x3f47e7b6e0 0x3f47e83bbd 0x3f47e254f3 0x3f47e25660 0x3f47e256ee 0x3f47e25792 0x3f47e2876e 0x4b031d 0x443b72 0x445476 0x3664c1d994 0x43fd39
 mongo(_Z12quitAbruptlyi+0x3b0) [0x440b50]
 /lib64/libc.so.6 [0x3664c302d0]
 /usr/lib64/libjs.so.1 [0x3f47e7b6e0]
 /usr/lib64/libjs.so.1(js_CompileTokenStream+0x3d) [0x3f47e83bbd]
 /usr/lib64/libjs.so.1 [0x3f47e254f3]
 /usr/lib64/libjs.so.1(JS_CompileUCScriptForPrincipals+0x60) [0x3f47e25660]
 /usr/lib64/libjs.so.1(JS_EvaluateUCScriptForPrincipals+0x3e) [0x3f47e256ee]
 /usr/lib64/libjs.so.1(JS_EvaluateUCScript+0x22) [0x3f47e25792]
 /usr/lib64/libjs.so.1(JS_EvaluateScript+0x6e) [0x3f47e2876e]
 mongo(_ZN5mongo7SMScope4execERKSsS2_bbbi+0xed) [0x4b031d]
 mongo(_Z5_mainiPPc+0x14a2) [0x443b72]
 mongo(main+0x26) [0x445476]
 /lib64/libc.so.6(__libc_start_main+0xf4) [0x3664c1d994]
 mongo(__gxx_personality_v0+0x269) [0x43fd39]

Qualquer ideia ou sugestão seria bem-vinda

    
por Michael Irey 16.03.2012 / 20:09

3 respostas

3

O mongo versão 1.6.4 foi instalado pelo sistema de gerenciamento de pacotes, que inclui os scripts init do mongo.

A solução que obtive foi baixar os binários mais recentes do Mongo (2.0.3) do link . Então substituí todos os binários do rpm /usr/bin pelos que eu baixei.

Tudo funciona agora perfeitamente!

    
por 19.03.2012 / 19:26
1

Apenas tive o mesmo problema. MongoDB versão do shell: 1.8.2 no Ubuntu (EC2)

> db.tweets.find();

error:non ascii character detected

Verifiquei qual versão do MongoDB eu estava executando emitindo o comando:

$ mongod --version

db version v1.8.2, pdfile version 4.5 - Wed Oct 24 15:43:13 git version: nogitversion

Confirme se o mongo está atualmente em execução:

$ ps -deaf | grep mongod

mongodb 15408 1 0 Jun06 ? 13:50:00 /usr/bin/mongod --config /etc/mongodb.conf

Para Shutdown MongoDB

$ ./mongo

> use admin

> db.shutdownServer()

server should be down...

Em seguida, atualizou seguindo estas instruções: Como instalar o MongoDB no Ubuntu

Adicione a chave pública 10 Gen (criadores do MongoDB) ao apt-get para que você confie no pacote:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

$ echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" >> /etc/apt/sources.list.d/10gen.list

Atualize seus pacotes:

$ sudo apt-get update

instale o pacote MongoDB Debian / Ubuntu do 10gen:

$ sudo apt-get install mongodb-10gen

The following packages will be REMOVED: mongodb

The following NEW packages will be installed: mongodb-10gen

Se você receber um erro , tente:

$ apt-get autoremove

uma vez que você tenha a nova versão do MongoDB, o problema com o caractere "non ascii" deve desaparecer.

(ps eu sei que essa questão está relacionada ao RHEL mas pessoas que executam outras versões do Linux irão se deparar com essa questão então eu achei uma resposta Ubuntu / Debian relevante. Sinta-se à vontade para remover

    
por 25.10.2012 / 00:06
0

Dê uma olhada:

link

"O SpiderMonkey não usa o UTF-8 por padrão, então habilitamos antes de construir."

Então, você precisará reconstruir o SpiderMonkey.

    
por 16.03.2012 / 21:28