> db.user.find()
terminate called after throwing an instance of 'mongo::UserException'
  what():  non ascii character detected
Wed Dec 14 13:29:38 mongo got signal 6 (Aborted), stack trace:

Wed Dec 14 13:29:38 0x809d07d 0x8095cc3 0xa14400 0xa14416 0xa3fe71 0xa4334e 0x1be0b5 0x1bbfa5 0x1bbfe2 0x1bc14e 0x80ecd53 0x8117479 0x810c718 0x3c36f0
 /usr/lib/mongodb/mongo(_ZN5mongo15printStackTraceERSo+0x2d) [0x809d07d]
 /usr/lib/mongodb/mongo(_Z12quitAbruptlyi+0x333) [0x8095cc3]
 [0xa14400]
 [0xa14416]
 /lib/i386-linux-gnu/libc.so.6(gsignal+0x51) [0xa3fe71]
 /lib/i386-linux-gnu/libc.so.6(abort+0x17e) [0xa4334e]
 /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x155) [0x1be0b5]
 /usr/lib/i386-linux-gnu/libstdc++.so.6(+0xabfa5) [0x1bbfa5]
 /usr/lib/i386-linux-gnu/libstdc++.so.6(+0xabfe2) [0x1bbfe2]
 /usr/lib/i386-linux-gnu/libstdc++.so.6(+0xac14e) [0x1bc14e]
 /usr/lib/mongodb/mongo(_ZN5mongo9uassertedEiPKc+0x183) [0x80ecd53]
 /usr/lib/mongodb/mongo(_ZN5mongo9Convertor8toStringEP8JSString+0x149) [0x8117479]
 /usr/lib/mongodb/mongo(_ZN5mongo12native_printEP9JSContextjPy+0x98) [0x810c718]
 /usr/lib/xulrunner-2.0/libmozjs.so(+0xac6f0) [0x3c36f0]


我插入mongodb中的数据是用utf-8编码的,但是当我在控制台中使用db.user.find()时,出现了以上错误。

操作系统是Ubuntu 11.04
Mongodb是通过软件包管理器安装的

最佳答案

只是有同样的问题。 MongoDB Shell版本:Ubuntu(EC2)上的1.8.2


  > db.tweets.find();
  
  错误:未检测到ASCII字符


共识是升级到最新版本的MongoDB将解决此问题。

通过发出以下命令检查我正在运行哪个版本的MongoDB:


  $ mongod-版本
  
  db版本v1.8.2,pdfile版本4.5-
  星期三十月24 15:43:13 git版本:nogitversion


确认mongo当前是否正在运行:


  $ ps-聋| grep mongod
  
  mongodb 15408 1 0 06年6月? 13:50:00 / usr / bin / mongod --config /etc/mongodb.conf


Shutdown MongoDB


  $ ./蒙古
  
  >使用管理员
  
  > db.shutdownServer()
  
  服务器应关闭...


然后按照以下说明进行升级:How to Install MongoDB on Ubuntu

将10 Gen(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更新


安装10gen的MongoDB Debian / Ubuntu软件包:


  $ sudo apt-get install mongodb-10gen
  
  以下软件包将被删除:
    mongodb
  
  将安装以下新软件包:
    mongodb-10gen


如果遇到错误,请尝试:


  $ apt-get autoremove


确认mongodb用户/组具有写入数据目录的权限:


  $ sudo chown -R mongodb:mongodb / var / lib / mongodb /。


使用以下命令重新启动MongoDB:


  $ mongod --fork --dbpath / var / lib / mongodb / --smallfiles --logpath /var/log/mongodb.log --logappend


一旦有了新版本的MongoDB,“ non ascii”字符问题就不复存在了。 :-)

09-25 17:16
查看更多