Руководство по MongoDB Linux
Устанавливаем MongoDB из стандартного репозитория
Данные mongodb по умолчанию будет хранить в каталоге /var/lib/mongodb
Логи — в каталоге — /var/log/mongodb
Welcome to the MongoDB shell.
For interactive help, type «help».
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>
СУБД используем BSON — своеобразную интерпретацию JSON (JavaScript Object Notation)
Рассмотри примеры и убедимся в том, что синтаксис очень схож.
JSON:
<
«firstName»:»Andrey»,
«lastName»: «Ivanov»
«Age»: 25
>
JavaScript:
firstname = «Andrey»;
lastName = «Ivanov»;
Age = 25
BSON:
USER COLLECTION
<
_id:ObjectId(«7678sd6fsdfbhw367er3»),
«firstName»:»Andrey»,
«lastName»: «Ivanov»
«Age»: 25,
«projects:[«Project A», «Project B», «Project C»]»
«addresses»: [
<
street: «123 Lunacharskogo st»
city: «Yekaterinburg»,
state: «Sverdlovskaya oblast»
>,
<
street: «4568 Sadovaya st»
city: «Moscow»,
state: «Central region»
>
]
>,
<
_id:ObjectId(«7678s7826fsdfbhw367er3»),
«firstName»:»Nikolay»,
«lastName»: «Petrov»
«Age»: 54
>;
Таким образом, заметно основное отличие нереляционных БД. Определенные элементы могут иметь признаки, которых другие элементы той же таблицы не имеют. В MySQL потребовалось бы создавать ряды и колонки для адреса и проектов, в Монго это не требуется.
Выводим всех пользователей, существующих в документах — элементах БД
Создадим пользователя admin и пользователей с ограниченными правами
Переходим в каталог, в который установлен пакет
Заходим в консоль СУБД
Даем указание на необходимость использования базы
switched to db admin
И создаем пользователя с правами userAdminAnyDatabase
Добавляем другого пользователя
Просматриваем существующие базы
Инициализируем базу people (команда создает базу при первой к ней обращению, что аналогично CREATE DATABASE people в MySQL)
Добавляем пользователя с правами на чтение и запись
Successfully added user:
Таким образом мы установили пакет, авторизовались в консоли, создали первые базы данных, а также пользователей, одного с безграничным доступом ко всем базам, другого с доступом на чтение и запись
В следующей статье цикла рассматриваются понятия «документа» и «коллекции» в MongoDB
Установка MongoDB в Ubuntu
MongoDB — популярная реализация нереляционной базы данных. Если в двух словах, то базы данных бывают нескольких типов. Базы реляционного типа — самые популярные, хранят данные в записях таблицы, которая состоит из столбцов и строк. MongoDB принадлежит к объектно-ориентированному типу. Главное отличие этого типа в том, что работа и хранение данных осуществляется с помощью объектов, точно так же, как это делается в популярных объективно-ориентированных языках программирования (C++, Java).
Реляционные базы данных обычно используются для данных, которым важна сохранность и максимальная надёжность. Объектно-ориентированные базы данных более быстрые, но менее надёжные и часто используются для хранения различных событий и статистических данных. В этой инструкции я расскажу, как выполняется установка MongoDB Ubuntu 18.04.
Установка MongoDB
1. Установка из репозитория дистрибутива
В современных дистрибутивах утилита добавлена в официальный репозиторий современных версий Ubuntu. Для её установки достаточно выполнить:
sudo apt install mongodb-server
Затем можно посмотреть состояние службы:
sudo systemctl status mongod
И добавить её в автозагрузку, если это необходимо:
sudo systemctl enable mongod
Работать с базой данных можно через клиент командной строки Mongo. Например, давайте посмотрим версию базы данных:
Если вы собираетесь удалить MongoDB, то обратите внимание, что эта база данных может уже использоваться каким-либо приложением, поэтому сначала убедитесь, что, удалив её, вы ничего не сломаете.
1. Установка из репозитория разработчиков
Если вы хотите получить самую свежую версию программы, то необходимо устанавливать её из репозитория разработчиков MongoDB. Прежде чем устанавливать эту версию, надо удалить версию из официальных репозиториев, если она была установлена:
sudo apt purge mongodb*
Далее нужно интегрировать публичный ключ, чтобы система приняла пакет, для этого наберите в терминале:
wget -qO — https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add —
С помощью следующей команды создаём список файлов пакета:
echo «deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse» | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Обновим базу данных локальных пакетов:
И можно переходить к установке:
sudo apt install -y mongodb-org
Далее надо запустить сервис mongod и добавить его в автозагрузку:
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
Далее смотрим версию:
Если что-то не работает, логи сервиса можно посмотреть в папке /var/log/mongodb, файлы баз данных — /var/lib/mongodb.
Настройка MongoDB
По умолчанию база данных не защищена паролем и подключится к ней может кто угодно. Чтобы этого избежать, надо защитить базу данных. Для этого нужно создать базу данных и пользователя для неё, который сможет управлять всеми базами данных. Войдите в интерфейс управления Mongo:
Переключитесь в базу данных admin и создайте нового пользователя:
Здесь мы задаём имя пользователя Admin и разрешаем ему доступ ко всем базам данных. После нажатия Enter программа запросит пароль для нового пользователя. Введите пароль и всё будет готово.
Далее откройте конфигурационный файл /etc/mongod.conf и добавьте туда такие строчки:
sudo vi /etc/mongod.conf
security:
authorization: enabled
Затем перезапустите MongoDB:
sudo systemctl restart mongod
После этого вы все ещё сможете подключится к MongoDB с помощью клиента Mongo, но чтобы выполнить какие-либо действия, вам понадобится авторизация. Например, вы не сможете посмотреть список баз данных, создать пользователя или получить данные из базы. Например, команда show databases вернёт пустой результат:
Для подключения с авторизацией используйте команду:
$ mongo —authenticationDatabase имя_базы_данных -u имя_пользователя -p
mongo —authenticationDatabase «admin» -u «Admin» -p
Удаление MongoDB
Чтобы удалить MongoDB с компьютера, наберите:
sudo apt purge mongodb-org*
Или если вы устанавливали программу из официальных репозиториев, используйте:
sudo apt purge mongodb*
Теперь вы знаете, как установить MongoDB Ubuntu 18.04 на ваш компьютер, а также как проверить, какая версия у вас установлена, и работает ли вообще эта база данных.
Как установить MongoDB на Ubuntu 18.04
Введение
MongoDB — это бесплатная СУБД с открытым исходным кодом. Это документоориентированная СУБД, реализованная при помощи подхода NoSQL. На июль 2018 года MongoDB входит в пятерку самых популярных СУБД (при этом остальные четыре СУБД — реляционные).
Преимущества использования MongoDB — это высокая скорость разработки, масштабируемость, использование гибкого языка для формирования запросов, эффективное хранение двоичных данных больших объемов.
Требования
Для того, чтобы выполнить инструкции из этой статьи, у вас должен быть сервер с установленной на нем ОС Ubuntu 18.04, пользователем, который может выполнять команды sudo, и фаерволом.
Шаг 1: установка MongoDB
Актуальную версию MongoDB можно установить из официальных репозиториев Ubuntu. Для этого можно использовать утилиту apt.
Сначала нужно обновить список пакетов:
А затем установить MongoDB:
Эта команда устанавливает несколько пакетов, а именно саму СУБД MongoDB и полезные инструменты для работы с сервером. Сервер базы данных автоматически начнет работать сразу после установки.
Теперь надо проверить, что сервер запущен и работает корректно.
Шаг 2: проверка работы базы данных
Для начала нужно проверить статус службы. Сделать это можно при помощи следующей команды:
Вывод на экране будет примерно вот таким:
То есть утилита systemctl (она используется для управления службами в Linux) показывает, что сервер MongoDB запущен и работает.
Если этого недостаточно, то можно подключиться к серверу базы данных и выполнить диагностику.
В выводе вы увидите версию текущей базы данных, адрес сервера и порт.
Единица в поле “ok” говорит о том, что сервер работает корректно.
Теперь необходимо разобраться в том, как управлять сервером.
Шаг 3: управление MongoDB
MongoDB устанавливается в качестве службы systemd, а значит, управлять СУБД можно при помощи стандартных команд system – точно так же, как и другими службами Ubuntu.
Команда для того, чтобы проверить статус службы:
Команда для остановки сервера:
Команда для запуска сервера после остановки:
Команда для того, чтобы перезапустить службу:
По умолчанию MongoDB запускается вместе с запуском сервера, но эту предустановку можно изменить следующей командой:
Если вам снова нужно добавить службу в автозагрузку, то введите:
Теперь можно перейти к настройке фаервола.
Шаг 4: настройка фаервола
При стандартных настройках фаервола сервер MongoDB будет недоступен из сети. Если вы собираетесь использовать сервер MongoDB локально с приложениями, работающими на этом же сервере, то это подходящая настройка, которую лучше стоит оставить.
Однако если вы хотите сделать возможным доступ через интернет, то вам нужно разрешить входящие соединения в ufw.
Для того, чтобы дать доступ к MongoDB по стандартному порту 27017, можно использовать команду:
Но в этом случае доступ к базе данных получат абсолютно все пользователи, что небезопасно.
Поэтому лучше разрешить доступ только из определенных мест, например, с другого сервера. Для этого вам нужно дать доступ к стандартному порту MongoDB, но с указанием IP-адреса другого сервера, с которого можно будет подсоединяться:
Проверить изменения в настройках фаервола можно командой:
В выводе вы увидите, что трафик по порту 27017 разрешен:
Несмотря на то, что порт открыт, сейчас MongoDB слушает только локальный адрес 127.0.0.1. Для того, чтобы разрешить удаленные подключения, вам нужно добавить в файл mongod.conf публичный IP-адрес вашего сервера.
Откройте конфигурационный файл MongoDB:
Добавьте IP-адрес сервера в строку bindIP:
Обязательно поставьте запятую между уже написанным IP-адресом и тем, который вы добавляете.
Сохраните и закройте файл, а затем перезапустите MongoDB:
Теперь удаленные подключения к MongoDB разрешены.