Знижка 50% усі тарифи, обмежений час. Починаючи від $2.48/mo
12 хв залишилось
Бази даних та аналітика

Як встановити MongoDB на три останні версії Ubuntu (покроково)

Джим Шварц By Джим Шварц 12 хв читання
Оригінальний символ MongoDB на футуристичному сервері для встановлення MongoDB на Ubuntu + слоган про зміст статті + назва статті + логотип Cloudzy.

Ви вирішили використовувати MongoDB — чудовий вибір alternative to MariaDB для розроблення додатка MERN, платформи аналітики або будь-якої системи на основі документів, але зіткнулись із проблемами використання звичайних командних рядків Linux та безлічі помилок у терміналі. 

Не хвилюйтеся, цей посібник містить все, що вам потрібно знати від A до Z для встановлення MongoDB на Ubuntu.

MongoDB використовує X.Y.Z версіонування. 8.0 є головний серія версій, та 8.2 є мінор версія в межах цього циклу 8.0. Малі версії додають функції в межах тієї ж основної версії та, починаючи з 8.0, також доступні для встановлень на власних серверах для конкретних випадків використання (наприклад, Search та Vector Search). MongoDB 8.0 на Ubuntu підтримує 24.04 (Noble), 22.04 (Jammy) та 20.04 (Focal) на 64-бітних системах з підтримкою ARM64 на обраних платформах.

Попередні вимоги GnuPG та Curl

Перед встановленням офіційного mongodb-org пакету Ubuntu вимагає двох попередніх вимог: GnuPG та Curl. Ці інструменти дають Ubuntu дозвіл завантажити MongoDB, оскільки власний mongodb пакет Ubuntu не підтримується MongoDB Inc. і конфліктує з офіційним mongodb-org пакетом. Якщо ви вже встановили mongodb обов'язково видаліть його.

Далі виконайте команду sudo apt-get install gnupg curl. Curl — це інструмент для завантаження файлів з Інтернету, необхідний для отримання ключа безпеки MongoDB. GnuPG — це те, що Ubuntu використовує для перевірки автентичності програмного забезпечення. Якщо GnuPG відсутній, Ubuntu не може перевірити пакети MongoDB.

Переконайтеся, що ваш термінал успішно встановив GnuPG та Curl. Якщо так, це має виглядати так:Вихід терміналу Ubuntu після додавання GnuPG та Curl

Імпорт GPG-ключа MongoDB

Менеджер пакетів Ubuntu, APT, використовує GPG-ключі для перевірки пакетів перед встановленням. Без цього GPG-ключа Ubuntu не дозволить додати репозиторії 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

Якщо все спрацює, вихід вашого терміналу має виглядати так:Терміналу Ubuntu після успішного додавання GPG-ключа MongoDB.

Простіше кажучи, ця команда завантажує підпис безпеки MongoDB, конвертує його в формат, який розуміє Ubuntu, і зберігає у захищеній системній папці. Ось розбір команди частина за частиною:

  1. curl -fsSL URL завантажує офіційний ключ MongoDB
  2. –dearmor конвертує ключ з текстового формату в двійковий для розуміння Ubuntu
  3. -o /usr/share/keyrings/mongodb-server-8.0.gpg зберігає двійковий файл у папку, де Ubuntu зберігає довірені ключі

Якщо ви скопіюєте кожну командний рядок точно, публічний GPG-ключ буде додано без проблем. Однак деякі користувачі стикаються з проблемами при завантаженні MongoDB через невідповідність GPG-ключа. Помилки на кшталт:

NO_PUBKEY
The following signatures couldn't be verified
public key not available

Виникають, коли ви не дотримуєтесь точних команд GPG-ключа з попереднього кроку і замість цього використовуєте sudo apt-key оскільки сучасний Ubuntu це не рекомендує.

Додавання репозиторію MongoDB

Додавання репозиторію MongoDB створює файл, який каже Ubuntu, що пакети MongoDB доступні за конкретною інтернет-адресою. Створіть файл списку за адресою /etc/apt/sources.list.d/mongodb-org-8.0.list записавши рядок репозиторію в нього за допомогою echo … | sudo tee …

Ось де починається складність, оскільки різні версії Ubuntu потребують різних варіантів цієї команди. Тепер розглянемо, як імпортувати файл списку на трьох версіях Ubuntu, про які йшлося раніше.

Ubuntu 24.04 (Noble)

Щоб створити файл списку на Ubuntu 24.04, просто введіть 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 на вашому терміналі.

На перший погляд це може здатися заплутаним, але не хвилюйтесь. Як тільки ми розберемо команду на частини, все стане зрозуміло.

  1. echo виводить текст
  2. /etc/apt/sources.list.d це папка, в якій Ubuntu зберігає визначення джерел програмного забезпечення. Кожен файл з .list форматом у цій папці вказує Ubuntu на конкретне місце для завантаження програмного забезпечення
  3. За замовчуванням звичайний користувач не може писати в системні папки. футболка дає користувачеві спеціальне дозвіл писати текст у системні файли, при цьому використовуючи sudo
  4. шляхетний це кодова назва для Ubuntu 24.04. Кожна версія Ubuntu має кодову назву на кшталт:
Версія Кодова назва
20.04 Фокальний
22.04 Jammy
24.04 Благородний

Якщо версія Ubuntu не відповідає правильній команді, Ubuntu не зможе розпізнати репозиторій MongoDB.

Ubuntu 22.04 (Jammy)

Додавання файлу списку до Ubuntu Jammy виглядає однаково, але ви повинні ввести командний рядок, замінивши шляхетний з jammyI don't see any English text to translate in your message. Could you please provide the English UI label or phrase you'd like me to translate to Ukrainian?

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Переконайтеся, що це відповідає вашій версії Ubuntu, інакше все знову не спрацює.

Ubuntu 20.04 (Focal)

Виконайте ті самі кроки, але замість шляхетний or jammy, помістити в focal:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Тепер, коли репозиторій налаштований, ви можете приступити до встановлення mongodb-org.

Оновіть базу даних пакетів

Тепер, коли репозиторій розпізнаний Ubuntu, вам потрібно перезавантажити базу даних пакетів усередині нього, щоб з цього моменту вона включала MongoDB. Виконайте команду нижче:

sudo apt-get update

Ця команда залишається однаковою для всіх версій Ubuntu, і якщо пропустити, Ubuntu не включить MongoDB. Якщо команда спрацює, вихід терміналу буде таким:Вихід терміналу Ubuntu після запуску sudo apt-get update

 Тепер, після перезавантаження бази даних пакетів, настав час завантажити пакети MongoDB.

Встановіть MongoDB Community Server

Існує кілька релізів MongoDB для встановлення, але користувачі зазвичай обирають найновішу стабільну версію, оскільки вона найкраще підходить. Щоб встановити найновішу стабільну версію, запустіть sudo apt-get install -y mongodb-org

Ubuntu завантажив пакети MongoDB, встановив їх, створив обліковий запис користувача MongoDB та каталог даних, і зареєстрував MongoDB як системний сервіс. На цьому етапі ми розібрали, як завантажити MongoDB на Ubuntu. Тепер давайте його запустимо.

Як запустити MongoDB

Щоб запустити MongoDB, вам потрібно повідомити менеджеру сервісів Ubuntu, systemd, розпізнавати MongoDB як фоновий сервіс. Для цього введіть таку команду в термінал:

sudo systemctl start mongod

Якщо команда спрацює, Ubuntu запустить MongoDB як фонову програму. Якщо команда не спрацює, ви можете отримати помилку наподобі Помилка запуску mongod.service.

Це може статися через кілька типових проблем:

  • Помилка конфігураційного файлу in /etc/mongod.conf (помилки відступу YAML часті)
  • Конфлікт портів (порт 27017 уже зайнятий)
  • Проблема з дозволами на директоріях даних або логів (var/lib/mongodb або var/log/mongodb)
  • Диск переповнений or пошкодженість файлової системи

Три команди для діагностики проблемиФутуристичне налаштування сервера + три команди терміналу Ubuntu + хмара з шляхом оновлення.

Легко сказати, що може бути не так із вашою конфігурацією, через яку MongoDB не запускається, але набагато складніше вказати точну причину. Три простих способи діагностики, звідки може походити помилка:

  1. Перевірте статус сервісу: sudo systemctl status mongod –no-pager
  2. Перевірте докладні логи (найважливіше): sudo journalctl -u mongod –no-pager -n 100
  3. Перевірте власний файл логу MongoDB

Але врахуйте, що якщо ваш диск переповнений або системні файли пошкоджені, виправлення буде більше стосуватися обладнання, ніж програмного забезпечення. Користувачам може знадобитися купити краще обладнання для своєї інфраструктури сервера, щоб ефективно запустити MongoDB, якщо їхня поточна конфігурація застаріла. 

Якщо покупка повноцінного сервера не входить у ваш бюджет, розгляньте варіант Cloudzy Ubuntu VPS для чистого досвіду на власному приватному сервері з дистрибутивом Ubuntu на вашу подобу. Він пропонує 24/7 підтримка та до 40Gbps швидкість мережі завдяки своїм сховище NVMe SSD та DDR5 RAM сховище.

Крім того, він має мінімальну затримку. 99.95% час роботи та 14-денний гарантія повернення коштів. Це ще не все, але він також доступний у 12 локаціях по всьому світу за доступною ціною.

Три найпоширеніші виправлення для запуску MongoDB

Не існує абсолютного способу одночасно розпізнати точну проблему вашої системи з MongoDB і виправити її одним легким кроком. Ось кілька поширених виправлень, які ви можете спробувати, щоб MongoDB почав працювати.

  1. Помилка відступу конфігурації YAML. Припустимо, ви редагували /etc/mongod.conf перевірте відступ, виконавши sudo nano /etc/mongod.conf. Файл YAML чутливий до пробілів, тому переконайтеся, що на кожному рівні вкладення ровно два пробіли /etc/mongod.conf.
  2. Зайнятий порт 27017. Якщо порт 27017 використовує щось інше, зупиніть це або змініть порт MongoDB у mongod.conf. Якщо ви не впевнені, що запущено на порту 27017, спробуйте sudo ss -lntp | grep 27017 перевірити це
  3. Проблема з дозволами в директорії даних. Іноді MongoDB не має дозволу на запуск у вашій системі і тому взагалі не стартує. Спочатку виконайте sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, потім перезапустіть MongoDB за допомогою sudo systemctl restart mongod

Відповідно до Офіційний вебсайт MongoDB, інший спосіб вирішити цю проблему — перезавантажити демон sudo systemctl daemon-reload, а потім виконати першу команду sudo systemctl start mongod, знову.

Якщо немає mongod.service, встановлення не розмістило systemd unit, тому перевстановіть mongodb-org набір пакетів

За всим цим ви можете перевірити, чи успішно стартував MongoDB sudo systemctl status mongod. Якщо в терміналі написано активний (запущено), то все добре. Але є ще кілька налаштувань, які зроблять вашу роботу набагато зручнішою.

Автоматизуйте MongoDBСучасне налаштування сервера з символом автоматизації MongoDB + термінал з командою MongoDB + файл логів

MongoDB не запускається автоматично при кожному включенні сервера, тому вам доведеться повторювати деякі кроки кожен раз. За бажанням ви можете наказати Ubuntu запускати MongoDB після завантаження системи.

Просто запустіть sudo systemctl enable mongod у терміналі, і від цього моменту ваша система буде запускати MongoDB після кожного перезавантаження. Крім того, ви можете перезапустити mongod виконайте команду sudo systemctl restart mongod. Крім того, вам може знадобитися перевірити результати в файлі, щоб дізнатися про помилки або важливі повідомлення:

/var/log/mongodb/mongod.log

Тепер, коли все налаштовано, давайте почнемо працювати з mongod.

Відкриття оболонки MongoDB

Щоб працювати з базою даних, вам потрібно відкрити оболонку MongoDB, виконавши команду mongosh. Уявіть це як окремий командний термінал для MongoDB або консоль MySQL. Ви також можете взаємодіяти з MongoDB через графічні інструменти, наприклад драйвери MongoDB. Але якщо ви хочете працювати з ним з терміналу, mongosh це все, що вам потрібно.

Ваш MongoDB тепер повністю функціональний, але ви повинні виконати кілька додаткових кроків для його захисту.

Включіть автентифікацію для MongoDBПроцес автентифікації MongoDB + значок замку + підтвердження автентифікації.

MongoDB за замовчуванням не має захисту паролем, тому що для створення користувача необхідний прямий доступ. Ось простий спосіб це налаштувати

Створіть користувача-адміністратора

Спочатку перейдіть до бази даних admin командою:

use admin

Потім створіть користувача командою db.createUser({…}). Заповніть

  • Ім'я користувача
  • Пароль
  • Роль

Для ролі введіть root що означає повний контроль або адміністративні права.

Увімкнути автентифікацію

Тепер, коли користувача налаштовано, вам потрібно відредагувати /etc/mongod.conf файл. Це важливо, тому що він контролює поведінку MongoDB. Пам'ятайте, що після редагування цього файлу ви повинні перезапустити mongod сервіс командою sudo systemctl restart mongod. Нам потрібно змінити один параметр під назвою authorization, який виглядає так:

security:

  authorization:

Щоб завершити процес автентифікації, просто змініть значення authorization таким чином:

security:

  authorization: enabled

Тепер MongoDB потребуватиме входу, тому автентифікацію завершено. Давайте перейдемо до наступного налаштування, яке дасть найповніший контроль над MongoDB.

Відкрийте портам у брандмауері

Як згадувалося раніше, MongoDB працює на порту 27017. Оскільки брандмауери блокують порти за замовчуванням, вам потрібно дозволити додаткам запускатися на порту 27017. Для цього просто виконайте команду:

ufw allow from YOUR_IP to any port 27017

Крім того, ви можете виконати команду ufw allow 27017, але будьте обережні, адже це дозволить всьому інтернету отримати доступ до цього порту. Найбезпечніше залишитися при першому варіанті, оскільки він дозволяє трафіку доступатися до порту тільки з вашої IP-адреси.

Користувачі можуть зіткнутися з проблемами при запуску MongoDB, наприклад з проблемою віддаленого доступу. Залишайтеся з нами, щоб дізнатися, як це виправити.

Проблема віддаленого доступуНалаштування сервера з 3 моніторами для конфігурування параметрів віддаленого доступу MongoDB та команд терміналу.

MongoDB запускається з bindIp. bindIp обмежує MongoDB на 127.0.0.1, що дозволяє тільки локальні з'єднання. Тому якщо ви спробуєте підключитися до свого сервера MongoDB звідкись ще, вам буде заборонено доступ, оскільки MongoDB за замовчуванням налаштований на дозвіл тільки локальних з'єднань, якщо не налаштовано інакше.

Знову ж таки, перейдіть до /etc/mongod.conf, і ви побачите три рядки на кшталт цього:

net:

  port: 27017

  bindIp: 127.0.0.1

Якщо ви хочете дозволити віддалені з'єднання до вашого mongod користувача, змініть наведені вище значення так:

net:

  port: 27017

  bindIp: 0.0.0.0

Після цього перезавантажте ваш mongod послуга з sudo systemctl restart mongod як при будь-якому іншому редагуванні файлу.

Тепер ви надали своєму mongod сервісу дозвіл приймати віддалені з'єднання. Але будьте обережні, адже це відкриє вашу базу даних усьому інтернету, якщо ви ще не автентифікували свого mongod користувача. Існує безліч ботів, які постійно сканують відкриті порти MongoDB, тому завжди переконайтеся, що ваш користувач mongod має пароль.

Загальний огляд

Вітаємо, ви зробили все необхідне для створення оптимізованого сервісу MongoDB для вашої системи Ubuntu. Ось також схема, щоб відстежити кожен крок, представлений у цій статті.

Команда Що це робить
apt оновити Оновити список програм
встановлення apt Встановити програмне забезпечення
curl Завантажити файл
gpg Керувати ключами шифрування
echo Друкувати текст
футболка Записати в захищений файл
systemctl start Запустити сервіс
systemctl enable Запуск при завантаженні
systemctl стан Перевірити сервіс
mongosh Запустити оболонку MongoDB
Редагувати /etc/mongod.conf Увімкнути автентифікацію
ufw Керування брандмауером
bindIp Дозволити віддалений доступ

Це повинно допомогти вам краще зрозуміти весь процес. Але якщо самостійне налаштування MongoDB для вас надто складне, не забудьте запустити MongoDB VPS для вашого приватного сервера Ubuntu 24.04 LTS з попередньо встановленим MongoDB.

Він поставляється з 99.95% uptime, 24/7 підтримка, та 14-денний гарантія повернення коштів. Крім того, він підтримує до 40 Gbps пропускної спроможності завдяки його DDR5 RAM та сховище NVMe SSD сховищу. Не хвилюйтеся про місце вашого проживання — це також доступно в 12 локаціях по всьому світу за доступною ціною.

Але після всього цього ви нарешті встановили власний повнофункціональний сервіс MongoDB з усіма необхідними налаштуваннями для виробничих навантажень і бізнесу.

Поділитися

Ще з блогу

Читайте далі.

Розумне управління даними для вашого бізнесу: хмароподібне зберігання та стратегії резервного копіювання з VPS
Бази даних та аналітика

Розумне управління даними для вашого бізнесу: хмароподібне зберігання та стратегії резервного копіювання з VPS

VPS для безпечного управління бізнес-даними — це стратегія, яку я рекомендую щоразу, коли компанія вирішує припинити розкидати файли по ноутбуках, вкладеннях у листах і напівзабутих

Рекса СайрусРекса Сайрус 7 хв читання
Матеріалізований вигляд vs. вигляд
Бази даних та аналітика

Матеріалізований вигляд vs. вигляд: роль у базах даних

У системах баз даних матеріалізований вигляд — це об'єкт бази даних, який зберігає попередньо обчислені результати запиту у вигляді фізичної таблиці. Оскільки дані фактично зберігаються на диску, складні

Айві ДжонсонАйві Джонсон 7 хв читання
SnowFlake проти DataBricks
Бази даних та аналітика

Databricks проти Snowflake: неупереджене порівняння для фахівців з даних 🧱❄️

Для бізнесу, що спирається на дані у прийнятті рішень — будь то e-commerce платформи, які відстежують поведінку покупців, фінансові установи, що прогнозують тренди, чи технологічні компанії,

Аллан Ван КиркАллан Ван Кирк Читання за 13 хвилин

Готові до розгортання? З $2.48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів протягом 14 днів.