Поиск по сайту:

Как установить MongoDB 4 в CentOS 8


MongoDB – это популярный механизм базы данных NoSQL общего назначения, основанный на документах и хранящий данные в формате JSON. Он бесплатный, с открытым исходным кодом и поставляется с набором интересных и изящных функций, таких как хранилище файлов, репликация данных, специальные запросы и балансировка нагрузки, и это лишь некоторые из них. В число крупнейших компаний, внедривших MongoDB в свои приложения, входят Adobe, Facebook, Google, eBay и Coinbase.

Из этого руководства вы узнаете, как установить MongoDB на CentOS 8.

Шаг 1. Добавьте репозиторий MongoDB

Поскольку MongoDB отсутствует в репозитории CentOS 8 по умолчанию, мы добавим его вручную. Итак, во-первых, создайте файл репозитория, как показано.

vi /etc/yum.repos.d/mongodb.repo

Вставьте конфигурацию ниже и сохраните файл.

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/development/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

Шаг 2. Установите MongoDB в CentOS 8.

После включения репозитория следующим шагом будет установка MongoDB с помощью следующей команды dnf.

dnf install mongodb-org

Затем запустите и включите MongoDB для запуска при загрузке, выполнив приведенные ниже команды.

systemctl start mongod
sudo systemctl enable mongod

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

systemctl status mongod

Альтернативно вы можете использовать утилиту netstat, чтобы убедиться, что служба Mongod действительно прослушивает.

netstat -pnltu

Большой! мы подтвердили, что MongoDB запущен и работает.

Шаг 3. Доступ к оболочке MongoDB

Теперь вы можете получить доступ к оболочке MongoDB, просто введя команду:

mongo

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

Создание пользователя-администратора MongoDBan

Давайте теперь переключимся и создадим администратора.
Всегда полезно создать пользователя-администратора с повышенными привилегиями для выполнения задач с повышенными правами. Для этого сначала войдите в оболочку MongoDB:

mongo

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

> use admin

Теперь создайте нового пользователя MongoDB, выполнив приведенный ниже код.

> db.createUser(
 {
 user: "mongod_admin",
 pwd: "P@ssword@2019",
 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
 }
 )

В случае успеха вы должны получить результат ниже.

Successfully added user: {
	"user" : "mongod_admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

Чтобы просмотреть список созданных пользователей MongoDB, запустите.

> show users

Настройка аутентификации для MongoDB

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

Чтобы включить аутентификацию, отредактируйте файл /lib/systemd/system/mongod.service в разделе [Service], найдите и отредактируйте параметр Environment, как показано.

Environment="OPTIONS= --auth -f /etc/mongod.conf"

Сохраните и выйдите из файла конфигурации.

Чтобы изменения вступили в силу, перезагрузите систему и перезапустите MongoDB.

systemctl daemon-reload
systemctl restart mongod

Если вы теперь попытаетесь составить список пользователей без аутентификации, вы должны получить сообщение об ошибке, как показано.

Для аутентификации просто передайте учетные данные, как показано.

> db.auth('mongod_admin', 'P@ssword@2019')

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

> show users

На этот раз все прошло хорошо, поскольку учетные данные для аутентификации были предоставлены.

Чтобы выйти из ядра базы данных, запустите.

> exit

И это все на сегодня. Мы надеемся, что теперь вы уже готовы к установке MongoDB4 в своей системе CentOS 8 и приступаете к работе, выполнив несколько необходимых шагов.