Введение
MongoDB — это хорошо известная базовая база данных NoSQL, основанная на документах, которая хранит данные в формате JSON. Это бесплатное приложение с открытым исходным кодом, а также ряд интересных и элегантных функций, таких как хранение файлов, репликация данных, специальные запросы и балансировка нагрузки, и это лишь некоторые из них. Среди компаний-лидеров, внедривших MongoDB в свои приложения, можно назвать Adobe, Facebook, Google, eBay и Coinbase.
В этом руководстве вы узнаете, как установить MongoDB на CentOS 8.
Добавьте репозиторий MongoDB
Поскольку MongoDB отсутствует в репозитории CentOS 8 по умолчанию, мы добавим его вручную. Итак, сначала создайте файл репозитория, как показано ниже:
sudo 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
Установите MongoDB в CentOS 8
После включения репозитория следующим шагом будет установка MongoDB с помощью следующей команды dnf:
sudo dnf install mongodb-org
Затем запустите и включите MongoDB для автоматического запуска при запуске системы, выполнив следующие команды:
sudo systemctl start mongod
sudo systemctl enable mongod
Чтобы проверить статус MongoDB, запустите:
sudo systemctl status mongod
В качестве альтернативы вы можете использовать утилиту netstat, чтобы убедиться, что служба Mongod действительно прослушивает:
sudo netstat -pnltu
Войдите в оболочку 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
Выходить:
exit
Настроить аутентификацию для MongoDB
В настоящее время все пользователи могут войти в оболочку и выполнить любую команду, что совсем не рекомендуется по соображениям безопасности. Имея это в виду, нам нужно создать аутентификацию для только что созданного пользователя-администратора, чтобы другие пользователи не могли выполнять команды без авторизации.
Чтобы включить аутентификацию, откройте и отредактируйте следующий файл:
sudo vi /lib/systemd/system/mongod.service
В разделе [Service]
найдите и измените параметр Environment, как показано ниже:
Environment="OPTIONS= --auth -f /etc/mongod.conf"
Сохраните и выйдите из файла конфигурации.
Чтобы изменения вступили в силу, перезагрузите систему и перезапустите MongoDB:
systemctl daemon-reload
systemctl restart mongod
Если вы сейчас попытаетесь перечислить пользователей без аутентификации, вы должны получить сообщение об ошибке.
Для аутентификации просто передайте учетные данные, как показано ниже:
mongo
db.auth('mongod_admin', 'P@ssword@2019')
Теперь вы можете запустить любую команду. Попробуем еще раз перечислить пользователей:
show users
На этот раз все должно быть в порядке, поскольку учетные данные для аутентификации были предоставлены.
Чтобы выйти из базы данных:
exit
Вывод
Мы увидели, как установить MongoDB 4 в CentOS 8. Мы надеемся, что вы уже знакомы с установкой MongoDB4 в своей системе CentOS 8 и начинаете с некоторых необходимых шагов.