Репозиторий MongoDB содержит 5 различных пакетов:
mongodb-org
— метапакет, который установит все остальные;
mongodb-org-server
— непосредственно сам сервер mongod
и связанные файлы конфигурации и управления;
mongodb-org-mongos
— демон mongos
;
mongodb-org-shell
— mongo-shell
;
mongodb-org-tools
— различные утилиты: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongoimport, mongooplog, mongoperf, mongorestore, mongostat, mongotop.
Не забываем отключить SELinux:
# cat /etc/selinux/config | grep disa # disabled - No SELinux policy is loaded. SELINUX=disabled
И перезагрузить машину (хотя — всё поднялось и без его отключения, но везде рекомендуется).Создаём файл репозитория Mongo — /etc/yum.repos.d/mongodb.repo
. В него добавляем:
для х64 систем:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
для x32:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1
Поверяем:
# yum repolist | grep mongo mongodb MongoDB Repository 191
Приступаем к установке. Т.к. mongodb-org
содержится в нескольких репозиториях (Remi, Epel) — запустим установку с опцией --disablerepo
:
# yum --disablerepo="*" --enablerepo="mongodb" -y install mongodb-org ... Downloading Packages: (1/5): mongodb-org-2.6.3-1.i686.rpm .... Installed: mongodb-org.i686 0:2.6.3-1 Dependency Installed: mongodb-org-mongos.i686 0:2.6.3-1 mongodb-org-server.i686 0:2.6.3-1 mongodb-org-shell.i686 0:2.6.3-1 mongodb-org-tools.i686 0:2.6.3-1 Complete!
При установке MongoDB создаст директории:
/var/lib/mongo
— каталог данных;
/var/log/mongodb/
— каталог логов.
Запускаем:
# service mongod start Starting mongod: [ OK ]
Проверяем лог:
# tail /var/log/mongodb/mongod.log 2014-06-30T17:03:10.472+0300 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, storage: { dbPath: "/var/lib/mongo" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2014-06-30T17:03:10.588+0300 [FileAllocator] allocating new datafile /var/lib/mongo/local.ns, filling with zeroes... 2014-06-30T17:03:10.588+0300 [FileAllocator] creating directory /var/lib/mongo/_tmp 2014-06-30T17:03:10.634+0300 [FileAllocator] done allocating datafile /var/lib/mongo/local.ns, size: 16MB, took 0.04 secs 2014-06-30T17:03:10.699+0300 [FileAllocator] allocating new datafile /var/lib/mongo/local.0, filling with zeroes... 2014-06-30T17:03:10.702+0300 [FileAllocator] done allocating datafile /var/lib/mongo/local.0, size: 64MB, took 0.002 secs 2014-06-30T17:03:10.714+0300 [initandlisten] build index on: local.startup_log properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.startup_log" } 2014-06-30T17:03:10.714+0300 [initandlisten] added index to empty collection 2014-06-30T17:03:10.715+0300 [initandlisten] command local.$cmd command: create { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyUpdates:0 numYields:0 reslen:37 131ms 2014-06-30T17:03:10.716+0300 [initandlisten] waiting for connections on port 27017
Проверяем порт:
# netstat -anp | grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2751/mongod unix 2 [ ACC ] STREAM LISTENING 16159 2751/mongod /tmp/mongodb-27017.sock
Добавляем в автозагрузку:
# chkconfig mongod on
Проверяем:
# chkconfig --list | grep mongod mongod 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Подключаемся:
# mongo MongoDB shell version: 2.6.3 connecting to: test Welcome to the MongoDB shell. For interactive help, type "help". ... >
Посмотрим имеющиеся базы:
> show dbs admin (empty) local 0.078GB test 0.078GB
И для примера — вывод mongotop
:
# mongotop -v 2014-06-30T17:13:06.646+0300 creating new connection to:127.0.0.1:27017 2014-06-30T17:13:06.647+0300 [ConnectBG] BackgroundJob starting: ConnectBG 2014-06-30T17:13:06.648+0300 connected to server 127.0.0.1:27017 (127.0.0.1) 2014-06-30T17:13:06.648+0300 connected connection! connected to: 127.0.0.1 ns total read write 2014-06-30T14:13:07 test.test 0ms 0ms 0ms test.system.namespaces 0ms 0ms 0ms test.system.indexes 0ms 0ms 0ms local.system.replset 0ms 0ms 0ms local.system.namespaces 0ms 0ms 0ms local.system.indexes 0ms 0ms 0ms local.startup_log 0ms 0ms 0ms admin.system.version 0ms 0ms 0ms
Создадим базу и пользователя, просто что бы убедиться что всё работает:
> use firstdb switched to db firstdb
База ещё не создана:
> show dbs admin (empty) local 0.078GB test 0.078GB
Добавляем пользователя к этой базе:
> db.users.save( {username:"firstuser"} ) WriteResult({ "nInserted" : 1 })
Проверяем:
> show dbs admin (empty) firstdb 0.078GB local 0.078GB test 0.078GB
И, напоследок, посмотрим содержимое каталога данных MongoDB:
# ls -l /var/lib/mongo/ total 245792 -rw-------. 1 mongod mongod 67108864 Jun 30 17:22 firstdb.0 -rw-------. 1 mongod mongod 16777216 Jun 30 17:22 firstdb.ns -rw-------. 1 mongod mongod 67108864 Jun 30 17:03 local.0 -rw-------. 1 mongod mongod 16777216 Jun 30 17:03 local.ns -rwxr-xr-x. 1 mongod mongod 5 Jun 30 17:03 mongod.lock -rw-------. 1 mongod mongod 67108864 Jun 30 17:06 test.0 -rw-------. 1 mongod mongod 16777216 Jun 30 17:06 test.ns drwxr-xr-x. 2 mongod mongod 4096 Jun 30 17:22 _tmp
На этом установку MongoDB на CentOS можно считать завершённой.