суботу, 16 жовтня 2010 р.

Встановлюємо MongoDB

Сьогодні розглянемо мої потуги при встановленні MongoDB на Lucid Lynx.
Як стверджуюють її автори: MongoDB is scalable, high-performance, open source, document-oriented database - просто мрія розробника ПЗ.
Вирішив ставити з убунтівського репозиторія. Наразі там версія 1.2.2, хоча уже є стабільний реліз 1.6.3.
Також варто підмітити обмеження 32-бітних систем - база може бути не більше 2 Гб. Але мені для длупання в MongoDB цілком вистачить :)
Отож ставимо MongoDB:
$ sudo apt-get install mongodb
При установці чомусь не створюється каталог по замовчуванню для баз даних. Створимо його вручну і дамо своєму обліковому запису на нього права:
$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
Також mongo (command-line tool) не могла стартанути через відсутність libmozjs.so (Сподіваюсь цей баг виправили в новіших версіях):
$ mongo
mongo: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory
Бідолаха і справді її не бачить:
$ ldd /usr/bin/mongo
linux-gate.so.1 => (0xb7726000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7614000)
libboost_thread.so.1.40.0 => /usr/lib/libboost_thread.so.1.40.0 (0xb75ff000)
libboost_filesystem.so.1.40.0 => /usr/lib/libboost_filesystem.so.1.40.0 (0xb75ea000)
libboost_program_options.so.1.40.0 => /usr/lib/libboost_program_options.so.1.40.0 (0xb75a2000)
libboost_system.so.1.40.0 => /usr/lib/libboost_system.so.1.40.0 (0xb759d000)
libmozjs.so => not found
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7594000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb756d000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb754e000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7535000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb73db000)
/lib/ld-linux.so.2 (0xb7727000)
Шукаємо чи часом не завалялась у нас ця бібліотека:
$ find /usr/lib | grep libmozjs
/usr/lib/xulrunner-devel-1.9.2.10/sdk/lib/libmozjs.so
/usr/lib/xulrunner-1.9.2.10/libmozjs.so
/usr/lib/firefox-3.6.10/libmozjs.so
MongoDB з собою тягне XULRunner - тому сподіваємось, що нам його версія підійде:
$ sudo ln -s /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so
Стартуємо mongo
$ mongo
MongoDB shell version: 1.2.2
url: test
connecting to: test
type "exit" to exit
type "help" for help
>
Записуємо Васю Пупкіна в нашу базу:
> db.Human.save({name:"Вася Пупкін", dob:new Date('11/25/1985'), _id:new ObjectId()});
> db.Human.find()
{ "_id" : ObjectId("4cb9e7fff2401181a4ad9c57"), "name" : "Вася Пупкін", "dob" : "Mon Nov 25 1985 00:00:00 GMT+0300 (MSK)" }
Начебто все ок :)
Знайшов бравзерну оболонку для mongo з вбудованим навчальним курсом для "чайників" - Mongulator. Закидаєте собі на apache:
$ mkdir Mongulator
$ cd Mongulator/
$ git clone git://github.com/banker/mongulator.git
Cloning into mongulator...
remote: Counting objects: 253, done.
remote: Compressing objects: 100% (250/250), done.
remote: Total 253 (delta 148), reused 0 (delta 0)
Receiving objects: 100% (253/253), 100.45 KiB | 75 KiB/s, done.
Resolving deltas: 100% (148/148), done.
$ mkdir /var/www/mongulator
$ cd mongulator/public
$ cp * /var/www/mongulator
І в браузері маєте гарний Mongulator за адресою http://localhost/mongulator/

Для С# є декілька різних драйверів, корисних тулзів і цікавих статей тут.
Наразі я склонував git-репозиторії MongoDB-CSharp i NoRM і риюсь в них. В кожного з них свої фішари. Про те, що нарию, розкажу детальніше в наступних постах :)

Немає коментарів:

Дописати коментар