Назад | Перейти на главную страницу

Клиент Mongo RedHat EL5 UT8 Поддержка

# 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.

Но когда я пытаюсь запросить запись с символом utf8 из клиента командной строки mongo, я получаю:

> 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]

Любые идеи или предложения приветствуются

Версия mongo 1.6.4 была установлена ​​системой управления пакетами, которая включает сценарии mongo init.

Решение, которое я придумал, заключалось в том, чтобы загрузить новейшие двоичные файлы Mongo (2.0.3) из http://www.mongodb.org/downloads. Потом заменил все бинарники из rpm /usr/bin с теми, которые я скачал.

Теперь все работает отлично!

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

> db.tweets.find ();

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

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

$ mongod --version

версия базы данных v1.8.2, pdfile версия 4.5 - среда, 24 октября, 15:43:13 версия git: nogitversion

Подтвердить если mongo в настоящее время работает:

$ ps -глухой | grep монгод

mongodb 15408 1 0 июня 2006 г.? 13:50:00 / usr / bin / mongod --config /etc/mongodb.conf

Чтобы Завершение работы MongoDB

$ ./mongo

> используйте администратора

> 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

Последующий НОВАЯ будут установлены пакеты: mongodb-10gen

Если вы получите ошибку, пытаться:

$ apt-get autoremove

как только у вас будет новая версия MongoDB, проблема с символом "non ascii" должна исчезнуть.

(p.s. Я знаю, что этот вопрос относится к RHEL но люди бегут другие версии Linux столкнется с этой проблемой, поэтому я подумал, что ответ Ubuntu / Debian актуален. Не стесняйтесь удалять

Взгляни на:

http://www.mongodb.org/display/DOCS/Building+Spider+Monkey#BuildingSpiderMonkey-Build

«SpiderMonkey не использует UTF-8 по умолчанию, поэтому мы включаем его перед сборкой».

Итак, вам нужно перестроить SpiderMonkey.