MongoDB — это система управления базами данных с открытым исходным кодом, разработанная для обеспечения высокой производительности, высокой доступности, а также автоматического масштабирования на основе новейшей технологии NoSQL. В MongoDB каждая запись представляет собой документ, который представляет собой структуру данных, состоящую из пар полей и значений (документы MongoDB на Ubuntu сопоставимы с объектами JSON).
Поскольку MongoDB обеспечивает высокую производительность и отличную масштабируемость, MongoDB используется для создания современных приложений, для которых требуются мощные, критически важные и доступные базы данных.
В этой статье мы расскажем, как установить MongoDB на Ubuntu 18.04, управлять его сервисами и как установить базовую аутентификацию.
Важно: вы должны помнить, что разработчики MongoDB предлагают только пакеты для 64-битных LTS выпусков Ubuntu, таких как 14.04 LTS (trusty), 16.04 LTS (xenial) и т.д.
Шаг 1: Установка MongoDB на Ubuntu 18.04
1. Репозитории официального пакета программного обеспечения Ubuntu поставляются с последней версией MongoDB и могут быть легко установлены с помощью диспетчера пакетов APT.
Сначала обновите кеш системного программного обеспечения, чтобы иметь самую последнюю версию списков репозитория:
$ sudo apt update
2. Затем установите пакет MongoDB, который включает в себя несколько других пакетов, таких как mongo-tools, mongodb-clients, mongodb-server и mongodb-server-core.
$ sudo apt install mongodb
3. После того, как вы установили его, служба MongoDB автоматически запустится через systemd, и процесс будет прослушивать порт 27017. Вы можете проверить его состояние, используя команду systemctl:
$ sudo systemctl status mongodb
Шаг 2: Управление службой MongoDB
4. Установка MongoDB поставляется в качестве службы systemd и легко управляется с помощью стандартных команд systemd, как показано ниже.
Чтобы остановить работу службы MongoDB, выполните следующую команду:
$ sudo systemctl stop mongodb
Чтобы запустить службу MongoDB, введите следующую команду:
$ sudo systemctl start mongodb
Чтобы перезапустить службу MongoDB, введите следующую команду:
$ sudo systemctl restart mongodb
Чтобы отключить автоматический запуск службы MongoDB, введите следующую команду:
$ sudo systemctl disable mongodb
Чтобы снова включить службу MongoDB, введите следующую команду:
$ sudo systemctl enable mongodb
Шаг 3. Включите удаленный доступ к MongoDB на брандмауэре.
5. По умолчанию MongoDB работает на порте 27017, чтобы разрешить доступ извне, вы можете использовать:
$ sudo ufw allow 27017
Но предоставление доступа к MongoDB извне дает неограниченный доступ к данным базы данных. Таким образом, лучше предоставить доступ к определенному местоположению IP-адреса для порта MongoDB по умолчанию, используя следующую команду:
$ sudo ufw allow from your_server_IP/32 to any port 27017
$ sudo ufw status
6. По умолчанию порт 27017 прослушивает только локальный адрес 127.0.0.1. Чтобы разрешить удаленные соединения MongoDB, вам необходимо добавить IP-адрес своего сервера в файл конфигурации /etc/mongodb.conf, как показано ниже:
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
Сохраните файл, выйдите из редактора и перезапустите MongoDB.
$ sudo systemctl restart mongodb
Шаг 4: Создание root пользователя и пароля для базы данных MongoDB
7. По умолчанию MongoDB поставляется с отключенной аутентификацией пользователя, поэтому MongoDB запускается без контроля доступа. Чтобы запустить оболочку mongo, выполните следующую команду:
$ mongo
8. После того, как вы подключились к оболочке mongo, вы можете просмотреть все доступные базы данных с помощью следующей команды:
> show dbs
9. Чтобы включить контроль доступа для MongoDB мы включим аутентификацию; которая требует от пользователей идентифицировать себя каждый раз, когда они подключаются к серверу базы данных.
MongoDB по умолчанию использует механизм аутентификации проверки ответа на Salted Challenge Response (SCRAM). Используя SCRAM, MongoDB проверяет предоставленные учетные данные пользователя в отношении имени пользователя, пароля и базы данных аутентификации (база данных, в которой пользователь был создан, служит для идентификации пользователя).
Вам необходимо создать администратора пользователя (аналогичного пользователю root в MySQL/MariaDB) в базе данных администратора. Этот пользователь может управлять пользователями и ролями, такими как создание пользователей, предоставление или отмена ролей пользователей, а также создание или изменение прав доступа.
Сначала перейдите в базу данных администратора, затем создайте пользователя root, используя следующие команды:
> use admin
> db.createUser({user:"root", pwd:"[email protected]!#@%$admin1", roles:[{role:"root", db:"admin"}]})
Теперь выйдите из оболочки mongo, чтобы включить аутентификацию, как описано ниже.
10. Экземпляр mongodb был запущен без опции —auth командной строки. Вам необходимо включить аутентификацию пользователей, отредактировав файл /lib/systemd/system/mongod.service, сначала откройте файл для редактирования:
$ sudo vim /lib/systemd/system/mongodb.service
В разделе конфигурации [Service] найдите параметр ExecStart.
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Измените его содержание на следующее:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Сохраните файл и выйдите из него.
11. После внесения изменений в файл конфигурации запустите «systemctl daemon-reload», чтобы перезагрузить устройства и перезапустить службу MongoDB для проверки её состояния:
$ systemctl daemon-reload
$ sudo systemctl restart mongodb
$ sudo systemctl status mongodb
12. Теперь, когда вы пытаетесь подключиться к mongodb, вы должны аутентифицироваться как пользователь MongoDB. Например:
$ mongo -u "root" -p --authenticationDatabase "admin"
Примечание. Не рекомендуется вводить пароль в командной строке, потому что он будет сохранен в файле истории оболочки и может быть позднее просмотрен злоумышленником.
Вот и все! MongoDB — это система управления базами данных без использования SQL с открытым исходным кодом, которая обеспечивает высокую производительность, высокую доступность и автоматическое масштабирование.
В этой статье мы объяснили, как установить и начать работу с MongoDB в Ubuntu 18.04.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
sudo snap search mongo
sudo snap install mongoВЕРСИЯ
И при следующем обновлении пакета изменения затрутся. Откройте для себя systemctl edit, он как раз предназначен для внесения в файлы .service оверрайдов, которые не будут затираться при обновлении.