# 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
Mongo Server似乎处理utf8字符,以及我的php-mongo-client驱动程序。
但是,当我尝试从mongo命令行客户端查询具有utf8字符的logging时,我得到:
> 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]
任何想法或build议将受到欢迎
mongo版本1.6.4由包pipe理系统安装,包括mongo init脚本。
我提出的解决scheme是从http://www.mongodb.org/downloads下载最新的Mongo(2.0.3)二进制文件。 然后,我用我下载的rpm /usr/binreplace了所有的二进制文件。
现在一切都完美了!
刚刚有同样的问题。 Ubuntu上的MongoDB shell版本:1.8.2 (EC2)
> db.tweets.find();
错误:未检测到ascii字符
通过发出命令来检查我运行的是哪个版本的MongoDB:
$ mongod –version
db版本v1.8.2 ,pdfile版本4.5 – 星期三10月24日15:43:13 git版本:nogitversion
确认 mongo目前是否在运行:
$ ps -deaf | grep mongod
mongodb 15408 1 0 Jun06? 13:50:00 / usr / bin / mongod –config /etc/mongodb.conf
closuresMongoDB
$ ./mongo
>使用pipe理员
> db.shutdownServer()
服务器应该下来…
然后按照以下说明进行升级: 如何在Ubuntu上安装MongoDB
添加10代(MongoDB的创造者)公钥到apt-get,所以你相信他们的包:
$ 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
更新你的软件包:
$ sudo apt-get update
安装10gen的MongoDB Debian / Ubuntu软件包:
$ sudo apt-get install mongodb-10gen
以下软件包将被删除 : mongodb
以下新软件包将被安装: mongodb-10gen
如果您遇到错误 ,请尝试:
$ apt-get autoremove
一旦你有新版本的MongoDB,“非ASCII”字符问题应该消失。
(ps我知道这个问题涉及到RHEL,但运行其他版本的Linux的人会遇到这个问题,所以我认为Ubuntu / Debian的答案是相关的。随意删除
看一眼:
http://www.mongodb.org/display/DOCS/Building+Spider+Monkey#BuildingSpiderMonkey-Build
“SpiderMonkey默认不使用UTF-8,所以我们在构build之前启用。
所以,你需要重buildSpiderMonkey。