Установка и настройка MongoDB на Ubuntu 24.04
Содержание статьи
MongoDB — это документоориентированная нереляционная СУБД, которая распространяется по лицензии SSPL и имеет открытый исходный код.
Её создатели были довольно авторитетными в мире IT разработчиками. В частности, именно они основали в начале 2000-х DoubleClick — одну из первых компаний, специализирующихся на интернет-рекламе, с фантастической по тем временам скоростью показа до 400 000 объявлений в секунду.
СУБД пригодна для использования приложениями, обрабатывающими данные без жёсткой структуры и связей. Базы MongoDB гибкие и масштабируемые, они обеспечивают быструю и надёжную работу программ.
Предварительная настройка#
- Установка необходимых пакетов:
sudo apt-get install gnupg curl micro
- Импорт публичного ключа MongoDB:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
- Добавление репозитория MongoDB:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Установка MongoDB#
sudo apt-get update
sudo apt-get install -y mongodb-org
Настройка безопасности#
- Редактирование конфигурационного файла:
sudo micro /etc/mongod.conf
- Включение авторизации (раскомментируйте и добавьте следующие строки):
security:
authorization: enabled
- Настройка сетевого доступа (в том же файле):
net:
port: 27017
bindIp: 0.0.0.0 # Разрешает подключения со всех IP-адресов
- Настройка файервола:
sudo ufw allow from YOUR_IP to any port 27017 # Замените YOUR_IP на ваш IP-адрес
sudo ufw allow ssh # Разрешаем SSH-подключения
- Перезапуск и проверка статуса MongoDB:
sudo systemctl restart mongod
sudo systemctl status mongod
sudo lsof -i | grep mongo # Проверка прослушиваемых портов
Создание пользователей и настройка прав доступа#
- Создание администратора (выполнять в mongo shell):
use admin
db.createUser({
user: "admin",
pwd: "ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ",
roles: [
{ role: "root", db: "admin" }
]
})
- Пример создания обычного пользователя:
db.createUser({
user: "user",
pwd: "ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ",
roles: [
{ role: "readWrite", db: "vpn" }
]
})
- Предоставление дополнительных прав существующему пользователю:
db.grantRolesToUser("user1", [
{ role: "readWrite", db: "db1" },
{ role: "dbOwner", db: "db2" }
])
Подключение к MongoDB#
- Подключение с аутентификацией:
mongo -u admin_user -p admin_password --authenticationDatabase admin
- Создание новой базы данных и коллекции:
use dbname1 # Создает новую базу данных
db.createCollection("clients_tg") # Создает новую коллекцию
Важные замечания:#
- Всегда используйте надежные пароли
- Убедитесь, что файервол правильно настроен
- Регулярно обновляйте MongoDB для получения последних исправлений безопасности
- Храните учетные данные в безопасном месте
- При настройке
bindIp: 0.0.0.0
убедитесь, что приняты все необходимые меры безопасности
Другие посты