Шаг 1: Обновить систему
sudo apt update && sudo apt upgrade -y
Получил ошибку:
Err:14 https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian bookworm InRelease
402 Payment Required [IP: 18.165.122.36 443]
Reading package lists... Done
E: Failed to fetch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian/dists/bookworm/InRelease 402 Payment Required [IP: 18.165.122.36 443]
E: The repository 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian bookworm InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian/dists/bookworm/InRelease 402 Payment Required [IP: 18.165.122.36 443]
E: The repository 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian bookworm InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
К моей системе оказались подключены репозитории RabbitMQ (rabbitmq-erlang и rabbitmq-server), которые требуют оплаты (код 402 Payment Required). Это и блокирует обновление пакетов.
Удалил проблемные репозитории RabbitMQ
sudo rm /etc/apt/sources.list.d/rabbitmq*.list 2>/dev/null
sudo rm /etc/apt/sources.list.d/cloudsmith*.list 2>/dev/null
Повторил шаг обновления.
Шаг 2: Установка MongoDB (актуальная версия 8.0)
sudo apt install -y mongodb-org
Можно проверить:
dpkg -l | grep mongodb-org
Шаг 3: Создаем директории для данных и логов, настраиваем права
sudo mkdir -p /var/lib/mongodb /var/log/mongodb
sudo chown -R $USER:$USER /var/lib/mongodb /var/log/mongodb
Шаг 4: Запускаем MongoDB вручную
mongod --config /etc/mongod.conf --fork --logpath /var/log/mongodb/mongod.log
Проверяем:
ps aux | grep mongod
# Должен быть процесс /usr/bin/mongod
Шаг 5: Подключаюсь к MongoDB
mongosh
Если команда не найдена — установите MongoDB Shell
sudo apt install -y mongodb-mongosh
Мне потребовалось поменять порт.
sudo vim /etc/mongod.conf
Находим секцию net: и добавьте/измените параметр port:
net:
port: 27018 # Новый порт
bindIp: 127.0.0.1
Проверяем свободен ли порт:
sudo lsof -i :27018
Перезапускаю MongoDB
sudo pkill mongod
Запускаю MongoDB с новым портом:
mongod --config /etc/mongod.conf --fork --logpath /var/log/mongodb/mongod.log
Можно убедиться, что MongoDB слушает новый порт
sudo netstat -tuln | grep 27018
# Должно быть: tcp 0 0 127.0.0.1:27018 0.0.0.0:* LISTEN
Подключился к новому порту:
mongosh --port 27018
Шаг 6: Добавление бд и пользователя
Включаю аутентификацию
sudo vim /etc/mongod.conf
Добавил в секцию security
security:
authorization: enabled
Перезапустил MongoDB
sudo pkill mongod
mongod --config /etc/mongod.conf --fork --logpath /var/log/mongodb/mongod.log
Создаю администратора
mongosh --port 27018
// Переключитесь на служебную БД admin
use admin
// Создайте суперпользователя
db.createUser({
user: "admin",
pwd: "пароль",
roles: ["root"]
})
Подключаюсь с аутентификацией
mongosh --port 27018 -u admin -p пароль --authenticationDatabase admin
Создаю базу данных и пользователя
// 1. Создайте/переключитесь на свою БД (например, "myapp")
use myapp
// 2. Создайте пользователя с правами на ЭТУ БД
db.createUser({
user: "app_user",
pwd: "пароль",
roles: [
{ role: "readWrite", db: "myapp" },
{ role: "dbAdmin", db: "myapp" }
]
})
// 3. Проверьте
show users
Проверяю работу:
mongosh --port 27018 -u app_user -p пароль --authenticationDatabase myapp
