Appearance
Установка и настройка MongoDB
MongoDB - документоориентированная база данных, используется как основное хранилище всех сущностей.
В данном руководстве описана базовая минимальная настройка базы данных, для более подробной настройки необходимо обратиться к официальной документации.
К сведению
В примере приведена настройка MongoDB 6.0
Внимание
При стандартных настройках сервер с MongoDB не должен быть доступен извне, иначе необходимо настроить способы аутентификации и авторизации для обеспечения защиты.
Установка
Linux
Установка MongoDB для RHEL системы
Настройка системы управления (yum):
Создать файл /etc/yum.repos.d/mongodb-org-6.0.repo для возможности установки MongoDB, используя yum:
ini
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
Установка пакетов MongoDB:
shell
sudo yum install -y mongodb-org
Установка MongoDB для Debian системы
- Импортировать публичный ключ для пакетного менеджера системы:
shell
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
- Создать файл /etc/apt/sources.list.d/mongodb-org-6.0.list:
shell
echo "deb http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
- Обновить локальную пакетную базу данных:
shell
sudo apt-get update
Установка пакетов MongoDB:
shell
sudo apt-get install -y mongodb-org
Настройка рабочих директорий:
По дефолту MongoDB использует стандартного пользователя mongod и следующие директории:
- /var/lib/mongo (директория данных)
- /var/log/mongodb (директория логов)
Данные директории необходимо создать:
shell
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
В случае использования нестандартной директории, необходимо внести изменения в файл /etc/mongod.conf, например:
yaml
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /mnt/db/mongo/log/mongod.log
# Where and how to store data.
storage:
dbPath: /mnt/db/mongo/db
journal:
enabled: true
При использовании стандартного пользователя mongod необходимо дать ему права на созданные директории.
shell
sudo chown -R mongod:mongod <directory>
Отключение SELinux
Внимание
Если SELinux находится в режиме enforcing для работы MongoDB, его необходимо отключить или настроить согласно документации MongoDB
Для отключения SELinux необходимо выполнить команду:
shell
sudo sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
После выполнения команды нужно перезагрузить компьютер.
Установить автозапуск и запустить сервис
Для этого необходимо выполнить следующие команды:
shell
sudo systemctl daemon-reload
sudo systemctl enable mongod
sudo systemctl start mongod
Внимание
При стандартных настройках для работы MongoDB необходимо открыть порт 27017
Настройка MongoDB
Для использования mongo shell необходимо выполнить команду:
shell
mongo
Создание базы данных и коллекции:
shell
use myNewDB
db.myNewCollection1.insertOne( { x: 1 } )
К сведению
Базу данных создавать необязательно. Приложение создаст самостоятельно со всеми необходимыми коллекциями, используя значения из файла application.properties.
Для использования MongoDB в ЦРМе необходимо в application.properties установить актуальные параметры, например:
ini
###MongoDB Setting
#technometer.sds.jwtExpirationMs=60000
#technometer.sds.jwtRefreshExpirationMs=120000
#Адрес сервера монги
technometer.sds.mongo_url=mongodb://URL_MONGO_SERVER:PORT_MONGO //[!code --]
technometer.sds.mongo_url=mongodb://192.168.1.10:27017 //[!code ++]
#Имя используемой базы
technometer.sds.mongo_db_name=DB_NAME_MONGO //[!code --]
technometer.sds.mongo_db_name=crm //[!code ++]
#Имя аршиновской коллекции в монге
technometer.sds.mongo.arshin.collection=COLLECTION_NAME //[!code --]
technometer.sds.mongo.arshin.collection=vri //[!code ++]
#Имя аршиновской базы
technometer.sds.mongo.arshin.db_name=DB_NAME_ARSHIN //[!code --]
technometer.sds.mongo.arshin.db_name=crm_arshin //[!code ++]