Установка MongoDB в Ubuntu. Установка MongoDB на Microsoft Windows Установка драйверов MongoDB

MongoDB — это система управления базами данных, которая значительно отличается от MySQL. Основная разница заключается в том, что в MySQL запросы пишутся на языке SQL, а в MongoDB на BSON (бинарный JSON). Это значит, что работа с этой системой может осуществляться в основном через JavaScript выражения.

Также MongoDB включает в себя собственную утилиту для выполнения команд, направленных на работу с БД. В данном цикле статей, мы затронем следующие темы:

  • Установка и запуск MongoDB на Windows
  • Работа с MongoDB через консоль
  • Интеграция MongoDB и

Разработчикам не составляет труда быстро освоить работу с Mongo, если они знакомы с JSON. Этот формат использует выражения, которые состоят из пар “ключ”: “значение”.

Почему MongoDB

Между не табличными СУБД многие пользователи делают выбор в пользу MongoDB. Во-первых, данную систему можно установить практически на всех операционных системах (Windows, OSX, Linux). Во-вторых, проект до сих пор активно развивается и с завидной частотой команда разработчиков публикует обновления. Также мне кажется, что MongoDB предоставляет хорошую документацию для начинающих.

MongoDB лучше подходит в тех случаях, когда таблицы можно представить в виде объектов. По-моему, подобные системы лучше использовать при разработке приложений для мобильный устройств. В этом плане, Mongo предоставляет отдельные библиотеки, как для iOS, так и для Adndroid-а.

Ещё один весомый аргумент в пользу MongoDB: работать с данной системой можно на многих языках программирования, таких как C/C++, Python, , Rubym Perl, .NET и даже Node.js.

MongoDB — это реальное решение, если вы хотите отступить от SQL и попробовать что-то новенькое.

Ключевая терминология

Перед тем как приступить к установке MongoDB, давайте разберёмся с основными понятиями.

Как и MySQL, MongoDB может содержать множество баз данных, только вместо таблиц они содержат “коллекции”.

Коллекция — это что-то типа таблицы, только без колонок. Вместо этого каждая строка содержит наборы записей в виде ключ:значение.

Пример:

Внутри коллекции Users (пользователи) может располагаться запись с ключами firstname (имя) и lastname (фамилия). В то же время, та же коллекция может содержать запись с другими ключами: firstname, lastname, e-mail, birth (день рождения). В этом-то и заключается гибкость MongoDB.

Каждая из этих записей, или строк, называется “документ”, но это не тот документ типа.txt или.. Данная запись хранится в памяти в JSON формате.

Пример:

Предположим, в нашей коллекции содержится 500 документов. Как уже говорилось раньше, каждый из них может содержать разные поля. Единственное поле, которое должно быть у каждой записи, — это уникальный идентификатор (id), который добавляется автоматически.

Поначалу данная терминология может быть непривычной. Всё будет намного понятнее, когда вы увидите работу с СУБД на практике.

Установка MongoDB на Windows

Сперва качаем архив с MongoDB для win32 или win64 .

Распаковываем скачанный архив и помещаем его, к примеру, на диск C, в каталог mongodb. Причём, проследите за тем, чтобы каталог bin был доступен по адресу C:\mongodb\bin .

Далее прописываем путь к папке bin в настройках нашей ОС, для того чтобы к.exe файлам данной папки мы могли достучаться из любого места. Итак, делаем правый клик на Компьютер — Свойства. В списке слева, выбираем “Дополнительные параметры системы”:

В открывшемся окне ищем системную переменную Path. Кликаем по ней дважды. В поле “значение переменной” переходим в самый конец, ставим знак “;” и вписываем путь к каталогу bin:

Отлично! Жмём “ок”… и переходим к следующему шагу.

Для начала, нам необходимо создать каталог, где будут храниться наши БД. К примеру, C:\databases . Создаём эту папку.

Echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg

Данная команда создаст специальный лог файл и настройки конфигурации для сервиса.

Mongod --config C:\mongodb\mongod.cfg --install

Прежде чем запустить его, давайте отредактируем файл mongod.cfg , вписав туда настройку dbpath — путь к папке с нашими базами данных. В моём случае, после правки файла его содержание должно выглядеть примерно так:

Logpath=C:\mongodb\log\mongo.log dbpath=C:\databases

Возвращаемся к командной строке и запускаем сервис MongoDB:

Net start MongoDB

Для того чтобы проверить, будет ли сервис запускаться автоматически, нажимаем сочетание клавиш “windows+r”, пишем “services.msc”, нажимаем ОК.

В списке сервисов ищем MongoDB и, если его тип запуска не автоматический, то выставляем данный пункт, предварительно сделав правый клик, и выбрав, “свойства”.

Теперь, когда мы создали сервис, который будет запускать MongoDB при включении компьютера, нам не нужно будет делать это вручную.

Для проверки работы MongoDB открываем командную строку и пишем:

Show dbs

В ответе вы должны увидеть вот такую вот строку:

Local (empty)

Итог

Итак, MongoDB установлена и сконфигурирована. В следующей части мы рассмотрим основные команды для работы с данной СУБД.

Последнее обновление: 14.11.2018

Для установки MongoDB загрузим один распространяемых пакетов с официального сайта https://www.mongodb.com/download-center/community .

Официальный сайт предоставляет пакеты дистрибутивов для различных платформ: Windows, Linux, MacOS, Solaris. И каждой платформы доступно несколько дистрибутивов. Причем есть два вида серверов - Community и Enterprise. В данном случае надо установить версию Community. Хотя Enterprise-версия обладает несколько большими возможностями, но она доступна только в триальном режиме или по подписке.

На момент написания данного материала последней версией платформы была версия 4.0.4 . Использование конкретной версии может несколько отличаться от применения иных версий платформы MongoDB.

Для загрузки нобходиомго функционала выберем нужную операционную систему и подходящий тип пакета:

Для ОС Windows можно выбрать тип пакета "ZIP", то есть загрузить сервер в виде архива.

Если до установки уже была установлена более рання версия MongoDB, то ее необходимо удалить и также необходимо удалить все равне созданные базы данных.

После загрузки архивного пакета распакуем его в папку C:\mongodb .

Содержимое пакета MongoDB

Если после установки мы откроем папку C:\mongodb\bin , то сможем найти там кучу приложений, которые выполняют определенную роль. Вкратце рассмотрим их.

    bsondump : считывает содержимое BSON-файлов и преобразует их в читабельный формат, например, в JSON

    mongo : представляет консольный интерфейс для взаимодействия с базами данных, своего рода консольный клиент

    mongod : сервер баз данных MongoDB. Он обрабатывает запросы, управляет форматом данных и выполняет различные операции в фоновом режиме по управлению базами данных

    mongodump : утилита создания бэкапа баз данных

    mongoexport : утилита для экспорта данных в форматы JSON, TSV или CSV

    mongofiles : утилита, позволяющая управлять файлами в системе GridFS

    mongoimport : утилита, импорирующая данных в форматах JSON, TSV или CSV в базу данных MongoDB

    mongorestore : позволяет записывать данные из дампа, созданного mongodump, в новую или существующую базу данных

    mongos : служба маршрутизации MongoDB, которая помогает обрабатывать запросы и определять местоположение данных в кластере MongoDB

    mongorestat : представляет счетчики операций с бд

    mongotop : предоставляет способ подсчета времени, затраченного на операции чтения-записи в бд

Создание каталога для БД и запуск MongoDB

После установки надо создать на жестком диске каталог, в котором будут находиться базы данных MongoDB.

В ОС Windows по умолчанию MongoDB хранит базы данных по пути C:\data\db , поэтому, если вы используете Windows, вам надо создать соответствующий каталог. В ОС Linux и MacOS каталогом по умолчанию будет /data/db .

Если же возникла необходимость использовать какой-то другой путь к файлам, то его можно передать при запуске MongoDB во флаге --dbpath .

Итак, после создания каталога для хранения БД можно запустить сервер MongoDB. Сервер представляет приложение mongod , которое находится в папке bin. Для этого запустим командную строку (в Windows) или консоль в Linux и там введем соответствующие команды. Для ОС Windows это будет выглядеть так:

Командная строка отобразит нам ряд служебной информации, например, что сервер запускается на localhost на порту 27017.

И после удачного запуска сервера мы сможем производить операции с бд через оболочку mongo . Эта оболочка представляет файл mongo.exe , который располагается в выше рассмотренной папке установки. Запустим этот файл:

Это консольная оболочка для взаимодействия с сервером, через которую можно управлять данными. Второй строкой эта оболочка говорит о подключении к серверу mongod.

Теперь поизведем какие-либо простейшие действия. Введем в mongo последовательно следующие команды и после каждой команды нажмем на Enter:

Use test db.users.save({ name: "Tom" }) db.users.find()

Первая команда use test устанавливает в качестве используемой базу данных test. Даже если такой бд нет, то она создается автоматически. И далее db будет представлять текущую базу данных - то есть базу данных test. После db идет users - это коллекция, в которую затем мы добавляем новый объект. Если в SQL нам надо создавать таблицы заранее, то коллекции MongoDB создает самостоятельно при их отсутствии.

С помощью метода db.users.save() в коллекцию users базы данных test добавляется объект { name: "Tom" } . Описание добавляемого объекта определяется в формате, с которым вы возможно знакомы, если имели дело с форматом JSON. То есть в данном случае у объекта определен один ключ "name", которому сопоставляется значение "Tom". То есть мы добавляем пользователя с именем Tom.

Если объект был успешно добавлен, то консоль выведет результа в виде выражения WriteResult({ "nInserted" : 1 }) .

А третья команда db.users.find() выводит на экран все объекты из бд test.

Из вывода вы можете увидеть, что к начальным значениям объекта было добавлено какое-то непонятно поле ObjectId . Как вы помните, MongoDB в качестве уникальных идентификаторов документа использует поле _id . И в данном случае ObjectId как раз и представляет значение для идентификатора _id.

Установка драйверов MongoDB

Конечно, мы можем работать и через консоль mongo, добавляя и отображая объекты в бд. Но нам также было бы неплохо, если бы mongoDB взаимодействовала бы с нашими приложениями, написанными на PHP, C++, C# и других языках программирования. И для этой цели нам потребуются специальные драйверы.

На офсайте на странице https://docs.mongodb.com/ecosystem/drivers/ можно найти драйвера для таких языков программирования, как PHP, C++, C#, Java, Python, Perl, Ruby, Scala и др.

Jun 25 2013

Решил познакомиться с базами данных типа NoSQL. Для знакомства решил выбрать MongoDB, т.к. выбрал именно эту СУБД потому что часто встречал её в статьях на различных блогах. Если что то решил, лучше не откладывать на долго, что собственно я и сделал. Любое знакомство с ПО начинается с его установки, о чём будет написано ниже. Устанавливать будем как службу Windows.
1. Для начало необходимо скачать дистрибутив с официального сайта: http://www.mongodb.org/downloads

2. После того как архив скачался, распаковываем его в директорию, к примеру g:\webservwe\mongodb (в этой директории должна располагаться директория bin)

3. Для файлов БД создаём директорию data (g:\webservwe\mongodb\data)

4. В директории g:\webservwe\mongodb создаём файл mongod.cfg со следующим содержанием:

Logpath=g:\webserver\mongodb\log\mongo.log dbpath=G:\webserver\mongodb\data

5. В командной строке, запущенной от имени администратора выполняем следующую команду:

G:\webserver\mongodb\bin\mongod.exe –config G:\webserver\mongodb\mongod.cfg –install

6. И наконец проверка работы:

Запускаем клиент mongo.exe и прописываем следующие команды:

Db.test.save({ a: 1 }) db.test.find()

На экране должно отобразиться что то подобное:

{ "_id" : ObjectId("51c89ca80db214128714caca"), "a" : 1 }

Mongo представляет собой open source систему баз данных без схем, которая сильно отличается от более популярной MySQL. Самое главное различие заключается в том, что MySQL состоит из sql-запросов, а MongoDB сосредоточена на BSON (Binary JSON).

Это значит, что к большей части функционала можно осуществить доступ напрямую посредством javascript-значений.

Но Mongo представлена с собственным интерфейсом для запуска команд напрямую в вашей базе данных. В данном руководстве мы хотим сделать следующее:

* Раскрыть этапы настройки вашей системы (Windows и Mac) и запуска Mongo,
* Работу команд в Mongo (в скором будущем)
* Настройку MongoDB при помощи PHP (в скором будущем)

Веб-разработчикам действительно понравится Mongo, если они знакомы с . Этот язык на базе javascript сосредоточен на объектах, которые содержат пары ключ-значение.

Это немного отличается от обычных SQL-таблиц, которые состоят из данных в виде строк и колонок. Но MongoDB все равно представляет собой привлекательную систему баз данных, которую обязательно следует изучить и опробовать.

Кроме Mongo есть и несколько других , которые вы можете опробовать. Лично мы слышали только положительные отзывы об этом проекте и он, к тому же, поддерживается многими ОС (Windows, OSX, Linux), а команда разработчиков продолжает радовать нас новыми релизами на регулярной основе.

Установка Mongo на Mac OS X

Настройка MongoDB в Mac происходит гораздо проще, чем в Windows. Через командную (или терминал) мы запускаем несколько команд, чтобы получить последние версии MacPorts. Онлайн-документация предлагает нам , где нам дается такая же информация.

Для начала давайте проверим и обновим последнюю версию . В командную строку нужно ввести следующее:

Sudo port selfupdate
С другой стороны, вы можете добавить пометку debug, чтобы результат выводился следующим образом:

Sudo port -d selfupdate
Процесс может занять несколько минут, так как производится закачка и установка.

После того, как это обновление будет завершено, нам нужно запустить всего одну строку в командной строке. Это принесет нам самые свежих файлы библиотеки MongoDB, и поместит вмести с другими системными зависимостями.

Port install mongodb
Этот процесс может занять 10-15 минут, даже если у вас будет быстрый интернет. Установка потребует немного времени, но должна произойти быстрее, но обязательно дождитесь запуска терминала.

Затем у вас должна появиться возможность запустить сервер, используя команду:

Mongod
Все должно завершиться фразой «waiting for connections on port 27017» (ожидаю подключения к порту 27017).

Это означает, наша база данных запущена и работает корректно. Вы можете протестировать ее, набрав в браузере http://localhost:28017/. MongoDB предоставляет небольшой веб-интерфейс, который позволяет вам получить информацию о ваших базах данных и установке.

И последнее, что здесь интересно, это процесс принудительной загрузки MongoDB при включении компьютера. Hunter Ford опубликовал на своем сайте, которое является основной представленного здесь кода. Реализуя принудительную загрузку, вам не придется держать окно командной строки открытой для разработки.

Сначала вам нужно скачать, разархивировать и переместить этот документ (cкачиваний: 52) в /Library/LaunchDaemons/, т.е. у вас должно получиться так: /Library/LaunchDaemons/org.mongo.mongod.plist.

Затем в терминале создать небольшой Log-файл, и директорию для новых системных данных:

Sudo touch /var/log/mongodb.log
sudo mkdir /var/lib/mongodb
Наконец, запустить следующие команды для настройки запускающего модуля. Вы можете выставить перезагрузку компьютера после процесса, чтобы проверить, будет ли Mongo работать правильно после перезагрузки.

Sudo chown root:wheel /Library/LaunchDaemons/org.mongo.mongod.plist
sudo launchctl load /Library/LaunchDaemons/org.mongo.mongod.plist
sudo launchctl start org.mongo.mongod
Устанавливаем Mongo на Windows

Мы столкнулись с серьезными трудностями при попытке запустить MongoDB без аккаунта администратора. Это не так уж и сложно, если вам доступна опция «Открыть с правами администратора».

Но если у вас есть возможность, просто введите эту команду и перезагрузите компьютер. После перезагрузки вы заметите, что можете выбрать аккаунт Администратора для авторизации.

Net user administrator /active:yes
Если вы столкнетесь с проблемами, то у MongoDB есть отличное , разработанное специально для пользователей Windows. Чтобы получить свою копию, откройте , где вы увидите версию для Windows. На момент написания этой статьи, последний стабильный релиз был MongoDB 2.2.0: отсюда вы можете скачать версию , а здесь - .

Нам нужно поместить все эти файлы прямо в каталог C:\mongodb\. То есть, как только завершится закачка, распакуйте архив, и открывайте папки до тех пор, пока не дойдете до /bin/ с несколькими файлами. Выделите все эти файлы, вырежьте их и вставьте в новый каталог C:\mongodb\.

Теперь, в этой папке, кроме \bin\, создайте новую папку «log», в которой мы будем хранить все log-файлы нашей системы MongoDB. Нам также нужно создать две внешние папки для хранения данных: C:\data\ и C:\data\db\.

И именно здесь использование не администраторского аккаунта может вызвать проблему. Откройте командную строку и запустите cd C:\mongodb\bin.

Теперь нам нужно запустить mongod.exe, но после запуска вы заметите, что операция будет заморожена в момент прослушивания подключений. На самом деле, она не заморожена, мы запустили Mongo напрямую через терминал.

Это будет вам надоедать, поэтому давайте запустим команду, которая настроит автоматический запуск Mongo в качестве сервиса Windows.

> echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg
Первая команда создаст log-файл и конфигурацию для сервиса. Это не обязательно, но желательно уметь делать, будучи администратором базы данных.

Теперь запустите следующие 2 строки кода в терминале, чтобы создать сервис и запустить его.

> C:\mongodb\bin\mongod.exe --config C:\mongodb\mongod.cfg --install
> net start MongoDB
Если у вас не возникло никаких ошибок, то все сделано правильно!

Проверьте, активен ли сервис. Сделать это можно, открыв меню «Пуск» (Windows + R), и вписав services.msc.

Эта команда откроет перед вами перечень активных сервисов, и если вы прокрутите его вниз, то увидите Mongo DB в статусе «активный» и типом запуска «автоматический».

В Mac вы можете осуществить доступ к терминалу Mongo прямо посредством командной строки. Измените директории на C:\mongodb\bin\ и впишите mongo, а затем нажмите Enter.

Сейчас у вас должен появиться доступ прямо к серверу MongoDB. Теперь вы можете запускать команды Mongo для создания баз данных, коллекций, размещения новых данных или редактирования старых записей данных.

Запустите следующую строку, чтобы отобразить все текущие базы данных на сервере:

> show dbs
Будьте в курсе!

На сегодня все! Надеемся, что теперь у вас есть хоть какое-то понимание системы MongoDB, и вы сможете запустить ее на собственном компьютере! В следующей статье мы раскроем для вас базовые команды для MongoDB. Следите за новостями!

|

MongoDB – это свободная и открытая система управления базами данных NoSQL, которая сегодня пользуется высокой популярностью у веб-разработчиков. Данное руководство поможет установить MongoDB на сервер Ubuntu 16.04 для окружения производства.

На момент написания статьи официальный пакет MongoDB для Ubuntu 16.04 ещё не вышел, в статье используется пакет для Ubuntu 14.04. Потому после установки MongoDB нужно будет включить программу как сервис systemd (устаревшие пакеты не делают этого автоматически, поскольку Ubuntu 14.04 использует другую систему инициализации). При использовании пакета для Ubuntu 16.04 этого делать не придётся.

Примечание : При обновлении пакета MongoDB до версии для 16.04, вероятно, придётся удалить unit-файл, созданный в данном руководстве (раздел 2), чтобы избежать конфликта пакетов. Больше проблем при обновлении не должно возникнуть. Однако, если вы не уверены и не хотите рисковать, рекомендуем подождать до выхода официального пакета для Ubuntu 16.04.

Требования

  • Настроенный сервер Ubuntu 16.04 (инструкции по начальной настройке сервера можно найти ).
  • Не-root пользователь с доступом к команде sudo.

1: Добавление репозитория MongoDB

Система MongoDB уже включена в репозитории пакетов Ubuntu, но официальный репозиторий MongoDB предоставляет более актуальную версию программы. Ubuntu проверяет подлинность пакетов программного обеспечения при помощи GPG-ключей, потому сначала нужно импортировать ключ официального репозитория MongoDB. Для этого запустите:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Успешно импортировав ключ, вы увидите на экране следующее:

gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)

После этого нужно добавить MongoDB в список пакетов, чтобы менеджер пакетов apt знал, откуда загружать файлы.

Чтобы создать list-файл для MongoDB, введите:

sudo echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

После этого нужно обновить индекс пакетов.

sudo apt-get update

2: Установка MongoDB

Теперь можно установить MongoDB:

sudo apt-get install -y --allow-unauthenticated mongodb-org

Примечание : Используемые в данном руководстве пакеты не соответствуют стандартам подписи Ubuntu 16.04, потому при установке используется дополнительный флаг —allow-unauthenticated.

Эта команда установит несколько пакетов, среди которых – последняя доступная версия MongoDB и полезные инструменты управления для сервера MongoDB.

Чтобы запустить MongoDB как сервис в Ubuntu 16.04, нужно создать дополнительный unit-файл. Такой файл сообщает системе инициализации systemd, как управлять тем или иным ресурсом. Сервисы – наиболее распространённый тип unit-файлов, определяющий зависимости и параметры запуска и остановки программы.

Создайте такой файл для MongoDB. Файл будет называться

mongodb.service и храниться в /etc/systemd/system.
sudo nano /etc/systemd/system/mongodb.service

Вставьте в файл следующий код:


Description=High-performance, schema-free document-oriented database
After=network.target
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
WantedBy=multi-user.target

Структура этого файла проста:

  • Раздел Unit содержит обзор (удобочитаемое описание сервиса) и зависимости MongoDB. В данном случае MongoDB зависит от network.target.
  • Раздел Service определяет, как запускать данный сервис. Директива User задаёт пользователя, при помощи которого будет запущен сервис (в данном случае это mongodb), а ExecStart определяет команды, при помощи которых запускается сервер MongoDB.
  • Последний раздел, Install, указывает, когда система systemd должна автоматически запустить сервис; multi-user.target – стандартная последовательность запуска (сервис запустится вместе с сервером).

Чтобы запустить новый сервис, введите:

sudo systemctl start mongodb

Данная команда не вернёт никакого вывода. Чтобы убедиться, что сервис запущен, введите:

sudo systemctl status mongodb
mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
Main PID: 4093 (mongod)
Tasks: 16 (limit: 512)
Memory: 47.1M
CPU: 1.224s
CGroup: /system.slice/mongodb.service
└─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

Теперь нужно включить автозапуск данного сервиса.

sudo systemctl enable mongodb

Теперь сервис MongoDB запущен и настроен. Управлять сервисом можно при помощи команд systemctl:

sudo systemctl mongodb stop
sudo systemctl mongodb start

3: Настройка брандмауэра

Заключение

Теперь СУБД MongoDB установлена и настроена. Дополнительные инструкции по работе с MongoDB можно найти в нашем .

Tags: ,