Как установить и настроить MongoDB на CentOS 7
Это руководство существует для этих версий ОС
- CentOS 8
- CentOS 7
На этой странице
- Предпосылки
- Шаг 1. Добавьте репозиторий MongoDB в CentOS
- Шаг 2. Установка MongoDB
- Шаг 3. Исправьте ошибку MongoDB
- Шаг 4. Создание пользователя-администратора MongoDB
- Шаг 5. Включите аутентификацию пользователей в MongoDB
- Ссылки
MongoDB — это база данных NoSQL, обеспечивающая высокую производительность, высокую доступность и автоматическое масштабирование. База данных NoSQL означает, что, в отличие от MySQL или PostgreSQL, она не поддерживает SQL (язык структурированных запросов) для извлечения или управления сохраненными данными. MongoDB не хранит данные в таблицах, вместо этого он хранит данные в структуре «документа», аналогичной JSON (в MongoDB называется BSON). MongoDB впервые была представлена в 2009 году, шесть лет назад. В настоящее время разрабатывается компанией MongoDB MongoDB Inc.
В этом руководстве я расскажу вам, как установить и настроить MongoDB 3.2 (стабильную) на сервере CentOS 7. Мы добавим и настроим пользователя-администратора для MongoDB и настроим аутентификацию для служб MongoDB.
Предпосылки
- СентОС 7
- Привилегии root
Что мы будем делать в этом уроке:
- Добавьте репозиторий MongoDB.
- Установка MongoDB.
- Исправьте некоторые ошибки MongoDB.
- Создайте пользователя-администратора.
- Включите аутентификацию и тестирование MongoDB.
Шаг 1. Добавьте репозиторий MongoDB в CentOS.
Подключитесь к вашему серверу CentOS 7 с учетной записью root ssh:
ssh
Нам нужно перейти в каталог yum.repos.d, чтобы добавить новый репозиторий CentOS. Перейдите в этот каталог и создайте новый файл репозитория mongodb-org-3.2.repo с помощью vim:
cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo
Вставьте конфигурацию репозитория MongoDB, как показано ниже:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Сохраните файл и выйдите из редактора.
Шаг 2 — Установка MongoDB
Мы добавили репозиторий MongoDB, теперь проверьте список репозиториев на сервере, чтобы убедиться, что репозиторий MongoDB доступен в списке.
Для этого выполните приведенную ниже команду от имени пользователя root:
yum repolist
Вы должны увидеть результаты ниже. Репозиторий MongoDB находится в списке.
Затем установите MongoDB с помощью команды yum.
yum -y install mongodb-org
Когда установка будет завершена, запустите MongoDB с помощью этой команды systemctl:
systemctl start mongod
Убедитесь, что MongoDB работает, проверив, что порт 27017 открыт.
netstat -plntu
И убедитесь, что служба mongodb активна.
systemctl status mongod
Шаг 3. Исправьте ошибку MongoDB
МонгоДБ установлена. Теперь мы можем получить доступ к оболочке mongodb, используя команду ниже:
mongo
Вероятно, вы увидите эту ошибку о конфигурации ulimit на сервере.
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000...
Ulimits или ограничения пользователя определяют, какую часть общесистемного ресурса может использовать пользователь.
Чтобы решить эту проблему, нам нужно увеличить конфигурацию ulimit пользователя mongod.
На сервере CentOS 7 база данных MongoDB работает под пользователем mongod. Перейдите в каталог безопасности и отредактируйте файл конфигурации limit.conf.
cd /etc/security/
vim limits.conf
Я увеличу лимиты пользователя mongod до 64000 - количество процессов или nproc и количество открытых файлов или nofile до 64000.
Вставьте новую конфигурацию ниже в конец файла:
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
Сохраните файл limit.conf.
Запустите команду sysctl ниже, чтобы применить измененные ограничения к системе:
sysctl -p
Затем перезапустите службу MongoDB и повторите попытку доступа к оболочке mongo, ошибка исчезла.
systemctl restart mongod
mongo
Шаг 4 — Создайте пользователя-администратора MongoDB
На этом шаге мы создадим нового пользователя «admin» для MongoDB с ролью UserAdminAnyDatabase из оболочки mongo.
Откройте оболочку mongodb:
mongo
Я создам нового администратора пользователя с именем admin и паролем admin123. Пожалуйста, используйте безопасный пароль на вашем сервере. Затем мы настроим роль пользователя как UserAdminAnyDatabase.
Переключитесь на администратора базы данных.
use admin
Введите запрос MongoDB ниже, чтобы создать нового пользователя-администратора:
db.createUser(
{
user: "admin",
pwd: "admin123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Затем убедитесь, что пользователь был создан с помощью приведенного ниже запроса MongoDB.
show users
Создан пользователь-администратор MongoDB.
Шаг 5. Включите аутентификацию пользователей в MongoDB.
На этом шаге мы включим аутентификацию для пользователей, чтобы другой пользователь без достаточных привилегий не смог увидеть данные в базе данных.
На нашем сервере CentOS 7 MongoDB работает под управлением systemd со сценарием инициализации в каталоге /etc/init.d/. Мы отредактируем этот скрипт, чтобы заставить службу mongodb работать с параметром --auth.
Перейдите в каталог /etc/init.d/ и отредактируйте файл \mongod\:
cd /etc/init.d/
vim mongod
В строке 15 вы найдете переменную «OPTION», туда мы добавим опцию «mongod».
OPTIONS=" --auth -f $CONFIGFILE"
Сохраните файл.
Перезагрузите службу systemd и перезапустите MongoDB.
systemctl daemon-reload
systemctl restart mongod
Затем мы должны протестировать конфигурацию, войдя в оболочку mongo и переключившись на базу данных администратора, а затем попытаться увидеть пользователей-администраторов.
mongo
use admin
show users
Вы увидите ошибку о несанкционированном выполнении команды в админке базы данных. Теперь нам нужно использовать команду db.auth() для аутентификации.
db.auth('admin', 'admin123')
Теперь вы можете видеть пользователей с их ролями и привилегиями.
MongoDB 3.2 был установлен и настроен на сервере CentOS 7.
Ссылки
- https://docs.mongodb.com/manual/