mongodb non ascii персонаж обнаружен - PullRequest
1 голос
/ 14 декабря 2011
> 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.04Mongodb был установлен через менеджер пакетов

Ответы [ 3 ]

2 голосов
/ 26 октября 2012

Просто была такая же проблема. MongoDB версия оболочки: 1.8.2 на Ubuntu (EC2)

> db.tweets.find ();

ошибка: обнаружен не ascii символ

Консенсус заключается в том, что обновление до последней версии MongoDB решит проблему.

Проверено, какую версию MongoDB я использовал, введя команду:

$ mongod --version

дБ версия v1.8.2 , pdfile версия 4.5 - Ср 24 октября 15:43:13 git версия: nogitversion

Подтвердите , если Монго в данный момент работает:

$ ps -deaf | grep mongod

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

К Выключение MongoDB

$ ./mongo

> использовать admin

> db.shutdownServer ()

сервер не работает ...

Затем обновился, следуя этим инструкциям: Как установить MongoDB в 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 update

установить пакет 10gen MongoDB Debian / Ubuntu:

$ sudo apt-get install mongodb-10gen

Следующие пакеты будут УДАЛЕНЫ : MongoDB

Будут установлены следующие NEW пакеты: 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, проблема с символами «не ascii» должна исчезнуть. : -)

1 голос
/ 31 декабря 2011

На основании некоторых похожих отчетов, которые я видел (на http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages и http://groups.google.com/group/mongodb-user/browse_thread/thread/e8b858078101933d) Кажется, проблема может заключаться в том, что в вашей версии mongo / spidermonkey отсутствует поддержка UTF8. Может быть, попробовать новую установку или сборку с нуля и посмотреть, исправит ли это?

0 голосов
/ 04 мая 2012

Это то, что я сделал, чтобы решить эту проблему.Я выполнил команду:

git clone https://github.com/mongodb/mongo.git
cd mongo
scons mongoshell

Это позволит собрать только оболочку Монго без необходимости полного перестроения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...