Установка MongoDB на Microsoft Windows. Установка MongoDB в Ubuntu Добавление репозитория MongoDB

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

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

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

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

Почему MongoDB

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

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

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

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

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

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

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

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

Пример:

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

Каждая из этих записей, или строк, называется “документ”, но это не тот документ типа.txt или.html. Данная запись хранится в памяти в 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 открываем командную строку и пишем:

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

Итог

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

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 на ваш сервер для использования в production-среде.

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

Перед установкой

Для того, чтобы следовать инструкциям, описанным в этой статье, вам необходим сервер с Ubuntu 16.04, настроенный согласно инструкциям в нашей , включая настройку не-рутового (non-root) пользователя.

Шаг 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)

Для этого выполните следующую команду:

  • echo "deb http://repo.mongodb.org/apt/ubuntu xenial/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 mongodb-org

Эта команда установит несколько пакетов, содержащих последнюю стабильную версию MongoDB, а также некоторые средства настройки сервера MongoDB.

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

Мы создадим юнит-файл для управления сервисом MongoDB. Создайте файл конфигурации mongodb.service в директории /etc/systemd/system с помощью nano или любого другого текстового редактора.

  • sudo nano /etc/systemd/system/mongodb.service

Вставьте следующий текст в этот файл, сохраните и закройте его.

/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

Эта команда не выводит ничего в консоль после завершения. Мы можем использовать systemctl для проверки успешного запуска сервиса.

  • 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

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

  • sudo systemctl enable mongodb

Теперь сервер MongoDB настроен и запущен, и вы можете управлять им с помощью команды systemctl (например, sudo systemctl mongodb stop , sudo systemctl mongodb start).

Шаг 3 - Настройка файрвола (Опционально)

Если вы следовали инструкциям в нашей и настроили файрвол на вашем сервере, сервер MongoDB будет не доступен из Интернета.

Если вы планируете использовать сервер MongoDB только локально с приложениями, запущенными на этом же сервере, то это самая безопасная и рекомендуемая настройка. Если же вы хотите иметь доступ к вашему серверу MongoDB через Интернет, то вам необходимо настроить входящие соединения в ufw .

Для разрешения доступа к MongoDB на порту по умолчанию 27017 откуда угодно, вы можете использовать команду sudo ufw allow 27017 . Тем не менее, разрешение удалённого доступа через Интернет к серверу MongoDB с настройками по умолчанию даёт полный доступ к серверу баз данных.

Чаще всего доступ к MongoDB должен осуществляться только из определённых приложений, находящихся на других заранее известных серверах. Для этого мы можем разрешить доступ к порту по умолчанию MongoDB с указанием IP адресов серверов, которым разрешено соединяться с MongoDB.

  • sudo ufw allow from your_other_server_ip /32 to any port 27017

Вы можете проверить настройки файрвола ufw следующей командой.

  • sudo ufw status

В выводе вы должны видеть, что трафик разрешён для порта 27017 . Если вы решили разрешить трафик только с определённых IP адресов, эти IP адреса будут указаны вместо слова Anywhere .

Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Описание более продвинутых настроек файрвола можно найти в статье .

Заключение

Вы можете ознакомиться с более детальными инструкциями по установке и настройке 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: ,