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

Как установить и настроить MongoDB на CentOS 7


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Предпосылки
  2. Шаг 1. Добавьте репозиторий MongoDB в CentOS
  3. Шаг 2. Установка MongoDB
  4. Шаг 3. Исправьте ошибку MongoDB
  5. Шаг 4. Создание пользователя-администратора MongoDB
  6. Шаг 5. Включите аутентификацию пользователей в MongoDB
  7. Ссылки

MongoDB — это база данных NoSQL, обеспечивающая высокую производительность, высокую доступность и автоматическое масштабирование. База данных NoSQL означает, что, в отличие от MySQL или PostgreSQL, она не поддерживает SQL (язык структурированных запросов) для извлечения или управления сохраненными данными. MongoDB не хранит данные в таблицах, вместо этого он хранит данные в структуре «документа», аналогичной JSON (в MongoDB называется BSON). MongoDB впервые была представлена в 2009 году, шесть лет назад. В настоящее время разрабатывается компанией MongoDB MongoDB Inc.

В этом руководстве я расскажу вам, как установить и настроить MongoDB 3.2 (стабильную) на сервере CentOS 7. Мы добавим и настроим пользователя-администратора для MongoDB и настроим аутентификацию для служб MongoDB.

Предпосылки

  • СентОС 7
  • Привилегии root

Что мы будем делать в этом уроке:

  1. Добавьте репозиторий MongoDB.
  2. Установка MongoDB.
  3. Исправьте некоторые ошибки MongoDB.
  4. Создайте пользователя-администратора.
  5. Включите аутентификацию и тестирование 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/